Allons étape par étape ici. On dirait que vous essayez d'utiliser OAuth uniquement pour l'authentification, mais avant de pouvoir le faire, vous devez obtenir le jeton d'accès qui sera utilisé pour s'authentifier lorsque vous effectuez vos appels d'API.
Dans la mesure où cela utilise OAuth version 1, pour obtenir le jeton d'accès, vous devez procéder comme suit:
- Tout d'abord, configurez une application, appelez le site pour obtenir le jeton de demande (informations d'identification temporaires) à l'aide de l'ID client et du secret de l'application
- Ensuite, appelez le site pour autoriser l'application avec le jeton de demande de la première étape (face à l'utilisateur, voir ci-dessous).
- Troisièmement, une fois l'autorisation terminée, vous appelez ensuite le site pour obtenir le jeton d'accès (maintenant que l'application a été autorisée)
Je recommande d'utiliser Postman pour les premières étapes, car elles ne doivent être effectuées qu'une seule fois. Postman gérera également la génération de timestamp
, nonce
et oauth signature
donc, si vous n'utilisez pas de bibliothèque OAuth, vous devez absolument utiliser Postman. Une fois que vous avez votre jeton d'accès, vous pouvez passer les appels via CURL sans aucune bibliothèque.
https://www.getpostman.com/
Première étape (application de configuration)
Installez le plugin WP OAuth 1, activez, puis passez à l'élément de menu sous Utilisateurs> Applications . Ajoutez une nouvelle application, remplissez le nom et la description. Pour le rappel, soit l'URL vers laquelle rediriger l'utilisateur (après l'autorisation), soit oop
pour le flux hors bande qui redirigera vers une page interne qui affiche le jeton de vérification (au lieu de rediriger).
https://github.com/WP-API/OAuth1/blob/master/docs/basics/Registering.md
Pour passer à la deuxième étape, un appel doit être effectué sur votre site, à l'aide de l' ID client et du secret client de l'application créée, pour obtenir des informations d'identification temporaires (jeton de demande).
Ouvrez Postman, créez un nouvel appel http://website.com/oauth1/request
, cliquez sur l'onglet Autorisation, sélectionnez OAuth 1.0 dans la liste déroulante, entrez la clé client, le secret client, définissez la méthode de signature sur HMAC-SHA1
, activez ajouter des paramètres à l'en-tête, encodez la signature oauth , puis cliquez sur Mettre à jour la demande
Postman générera automatiquement la signature, le nonce et l'horodatage pour vous, et les ajoutera à l'en-tête (vous pouvez voir sous l'onglet En-têtes).
Cliquez sur Envoyer et vous devriez obtenir une réponse qui comprend oauth_token
et oauth_token_secret
:
Ces valeurs seront utilisées à l'étape suivante pour autoriser l'application sous votre compte utilisateur WordPress.
Deuxième étape (autoriser la demande)
L'étape d'autorisation ne doit être effectuée qu'une seule fois, cette étape est destinée à l'utilisateur et celle que tout le monde connaît. Cette étape est obligatoire car vous utilisez OAuth1 et l'application doit être associée à un compte utilisateur WordPress. Pensez quand un site vous permet de vous connecter avec Facebook ... ils vous dirigent vers Facebook où vous vous connectez et cliquez sur "Autoriser" ... cela doit être fait, simplement via votre site WordPress.
Je recommande d'utiliser votre navigateur Web pour cette étape, car vous pouvez facilement définir les variables dans l'URL, ce qui fournit la page "Autoriser" pour autoriser l'application.
Ouvrez votre navigateur Web et saisissez l'URL de votre site, comme ceci:
http://website.com/oauth1/authorize
Maintenant, ajoutez à cette URL, oauth_consumer_key
(ID client) oauth_token
et oauth_token_secret
(à partir de l'étape précédente). Dans mon exemple, voici l'URL complète:
http://website.com/oauth1/authorize?oauth_consumer_key=TUPFNj1ZTd8u&oauth_token=J98cN81p01aqSdFd9rjkHZWI&oauth_token_secret=RkrMhw8YzXQljyh99BrNHmP7phryUvZgVObpmJtos3QExG1O
Une fois que vous cliquez sur Autoriser, vous obtiendrez un autre écran avec le jeton de vérification. Dans mon exemple, c'est le jeton de vérification retournéE0JnxjjYxc32fMr2AF0uWsZm
Troisième étape (obtenir un jeton d'accès)
Maintenant que nous avons autorisé l'application, nous devons effectuer un dernier appel pour obtenir le jeton d'autorisation qui sera utilisé pour effectuer tous vos appels API. Tout comme la première étape, je vais utiliser Postman (car la signature doit être HMAC-SHA1), et il est 100 fois plus facile de terminer ces étapes.
Ouvrez à nouveau Postman et remplacez l'URL par http://website.com/oauth1/access
Assurez-vous d'ajouter le Token et le Token Secret (valeurs de la première étape), puis cliquez sur Paramètres pour afficher les cases sous l'URL. À gauche, tapez oauth_verifier et à droite, entrez le code de la deuxième étape, le jeton de vérification
Assurez-vous de cliquer sur Mettre à jour la demande, puis sur Envoyer, et vous devriez obtenir une réponse avec oauth_token
et oauth_token_secret
... c'est ce dont vous avez besoin pour passer vos appels API! Jetez les originaux de l'étape 1, enregistrez-les dans votre code ou ailleurs en toute sécurité.
Vous pouvez ensuite effectuer un appel API à votre site, en définissant les en-têtes avec le jeton retourné et le secret du jeton.
Vous pouvez passer de plusieurs façons, via l'en-tête d'autorisation, dans les paramètres GET ou POST (si codé en tant qu'application / x-www-form-urlencoded). N'oubliez pas que vous DEVEZ passer la signature, l'horodatage et le nonce. Je ne savais pas combien de temps cette réponse me prendrait, donc je mettrai à jour cela demain avec un exemple sur la façon de le faire avec votre code.
Je recommande fortement d'installer le journal d'API Rest afin que vous puissiez afficher le journal des appels d'API et voir ce qui a été envoyé, retourné, etc. Cela vous aidera énormément à déboguer.
https://github.com/petenelson/wp-rest-api-log