web-dev-qa-db-fra.com

WordPress Rest API: Comment valider avec notre clé API personnalisée?

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

enter image description here

enter image description here

2
Bilwo
function checkApiAuth( $result ){

    $yourEncryptAPIKey = $_GET['request'];

    if( yourDecryptFn( $yourEncryptAPIKey ) === $realKey ):
        $result = true;

    else:
        $result = false;

    endif;

    return $result;           
}
add_filter('rest_authentication_errors', 'checkApiAuth');
1
BOZ

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 est null avant de rechercher des erreurs.

UNE WP_Error l'instance peut être retournée si une erreur se produit [...]. Un rappel peut renvoyer true 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 .)

0
kero