Ce n'est pas vraiment une question mais un guide sur la façon de faire des demandes authentifiées à l'API Wordpress à l'aide de JWT. J'écris ceci comme un rappel pour moi et pour ceux qui peuvent avoir besoin d'aide avec le même sujet.
rest-api
authentication
grazianodev
la source
la source
Réponses:
Pourquoi l'authentification JWT
Je crée un site qui utilise Wordpress comme back-end et une application React + Redux comme front-end, donc je tire tout le contenu du front-end en faisant des demandes à l'API Wordpress. Certaines requêtes (principalement les requêtes POST) doivent être authentifiées, c'est à ce moment que j'ai rencontré JWT.
Ce dont nous avons besoin
Pour utiliser l'authentification JWT avec Wordpress, nous devons d'abord installer le plug-in d' API JWT Authentication for WP REST . Comme expliqué dans les instructions du plugin, nous devons également modifier certains fichiers Wordpress de base. En particulier:
Dans le fichier .htaccess inclus dans le dossier racine de l'installation de Wordpress, nous devons ajouter les lignes suivantes:
Dans le fichier wp-config.php, également inclus dans le dossier racine de l'installation de Wordpress, nous devons ajouter ces lignes:
Test pour voir si JWT est disponible
Pour vérifier que nous pouvons maintenant utiliser JWT, lancez Postman et faites une demande à l'index par défaut de l'API Wordpress:
Quelques nouveaux points de terminaison, comme
/jwt-auth/v1
et/jwt-auth/v1/token
auraient dû être ajoutés à l'API. Si vous pouvez les trouver dans la réponse à la demande ci-dessus, cela signifie que JWT est maintenant disponible.Obtenir le jeton JWT
Restons dans Postman pour le moment, et demandons un jeton à l'API Wordpress:
La réponse contiendra le jeton JWT, qui est une clé chiffrée qui ressemble à ceci:
Faire une demande authentifiée
Essayons de changer le titre d'un article avec un ID de 300 comme exemple d'une demande authentifiée avec JWT.
Dans Postman, choisissez POST comme méthode et saisissez le point de terminaison suivant:
Choisissez Pas d'authentification dans l'onglet Autorisation et ajoutez ce qui suit dans l'onglet En-têtes:
Enfin, dans l'onglet Corps, sélectionnez les options raw et JSON (application / json), puis dans l'éditeur juste en dessous des options, tapez ce qui suit:
Vous pouvez maintenant appuyer sur ENVOYER. Regardez dans l'onglet réponse avec toutes les données sur le post que nous avons demandé: la valeur de la clé de titre devrait maintenant être
YES! Authenticated requests with JWT work
la source
register_rest_route( 'jwt-auth/v1', 'your_custom_endpoint ...
. Tout ce qui est sous / jwt-auth / aura besoin d'une autorisationEn complément de la réponse de @ grazianodev, voici comment vous obtenez votre jeton d'autorisation en utilisant cURL:
Après cela, envoyez vos demandes avec l'en-tête: "Autorisation: porteur $ token"
Où $ token est le jeton renvoyé par la fonction getToken () ci-dessus.
J'utilise personnellement le plugin " Désactiver l'API REST et exiger l'authentification JWT / OAuth " pour restreindre l'accès à l'API uniquement avec le jeton ci-dessus.
la source