Comment vérifier "Annuler l'authentification de l'en-tête" les fonctions "endpoint" de WordPress avec une clé API que nous produisons. (Remarque: pas un endpoint différent, endpoints d'origine)
J'ai ma propre classe/fonction "Crypto". Dans la demande, je dois envoyer une clé chiffrée, "déchiffrer" la "clé chiffrée" de "wp-function" et ainsi de suite, et autoriser la demande.
Je dois être capable de faire tout cela sur wordpress propres bibliothèques de points de terminaison.
Un exemple simple de ma structure de requête:
$.ajax({
type: "POST",
url: "http://localhost/workspace/wordpress/wp-json/wp/v2/posts?request=<?php echo $encrypted; ?>",
dataType: "json"
});
[~ # ~] php [~ # ~]
<?php echo $encrypted; ?>
<?php // "z0/8Q6cuMWBlZGzfTwOVi9HwCpKThN9Ju/o/MywK74vimB467vjGfKqoDVQdyKIdmXCxxE=" ?>
functions.php ou par ex. page php: Après le décryptage
<?php echo $decrypted; ?>
<?php // "Secret Password" ?>
<?php // I will verify my key, and to let
function checkApiAuth( $result ){
$yourEncryptAPIKey = $_GET['request'];
if( yourDecryptFn( $yourEncryptAPIKey ) === $realKey ):
$result = true;
else:
$result = false;
endif;
return $result;
}
add_filter('rest_authentication_errors', 'checkApiAuth');
On dirait que vous pouvez utiliser le rest_authentication_errors
filtre:
Ceci est utilisé pour passer un
WP_Error
d'une méthode d'authentification vers l'API.[...] Si la méthode d'authentification connectée n'est pas réellement tentée,
null
doit être renvoyé [...]. De même, les rappels doivent garantir que la valeur estnull
avant de rechercher des erreurs.UNE
WP_Error
l'instance peut être retournée si une erreur se produit [...]. Un rappel peut renvoyertrue
pour indiquer que la méthode d'authentification a été utilisée et qu'elle a réussi.
Pour un exemple de code, vous pouvez voir comment WP a implémenté leur vérification personnalisée pour le X-WP-Nonce
en-tête dans wp-includes/rest-api.php à partir de la ligne 807 .
(La fonction rest_cookie_check_errors
est ajouté au rest_authentication_errors
filtre avec priorité 1 .)