web-dev-qa-db-fra.com

node-wpapi: comment gérer l'authentification?

Je fais référence à la bibliothèque cliente javascript officielle node-wpapi pour les API officielles (4.7+) REST. Voici la doc: http://wp-api.org/node-wpapi/authentication/#cookie-authentication

Je lis le Authentification Cookie paragraphe, mais je ne suis pas dans cette situation.

J'essaie de créer une application à page unique. Je dois donc enregistrer/connecter/déconnecter l'utilisateur à l'aide de REST API. Je n'ai pas besoin d'utiliser node-wpapi, je pourrais utiliser n'importe quelle autre bibliothèque pour appeler les points de terminaison de l'API.

Mais mon problème est que je ne suis pas capable de comprendre ce que je dois appeler pour connecter un utilisateur et ce que je dois sauvegarder pour gérer les autres appels de l'API où l'utilisateur doit être connecté (pour créer un message, par exemple).

1
realtebo

Je suis l'auteur de la bibliothèque node-wpapi, merci de l'avoir vérifiée. Malheureusement, aucun schéma d’authentification externe n’est actuellement pris en charge, car WordPress n’est livré avec aucun schéma d’authentification autre que l’option cookie/nonce (qui ne fonctionne pas avec les applications externes, comme vous le décrivez).

Il existe des plugins pour authentifier les requêtes API à l'aide de JWT et OAuth 1.0a, et la gestion de ces méthodes pourrait être exécutée pour node-wpapi à l'aide d'une combinaison de méthodes de transport personnalisées et de la nouvelle fonction .setHeaders() que nous avons introduite dans la version 1.1 de node-api de la semaine dernière.

Cependant, ce que vous décrivez ne semble pas tout à fait comme une solution à ces approches. L'authentification de l'API REST est un moyen d'authentifier une requête unique auprès de votre site WordPress - en d'autres termes, "j'ai le droit d'afficher ou de modifier la ressource que je demande". L'API REST ne fournit pas de mécanisme permettant de se connecter à WordPress, ce qui devrait être géré à l'aide du formulaire de connexion WordPress existant.

Si votre SPA est conçu pour fonctionner dans un plugin, je vous recommande de le configurer pour créer une page qui ne peut être affichée que lors de la connexion. Lorsque vos utilisateurs tenteront d'ouvrir l'application, ils seront redirigés vers la page de connexion existante de WordPress, puis de retour. à votre application. Une fois connecté, une application à une seule page peut ensuite utiliser l'authentification par cookie/nonce pour les demandes d'API. Pour un exemple, voir le projet à https://github.com/kadamwhite/wp-notebook

J'espère que cela vous aide et merci d'avoir utilisé l'API REST!

4
K. Adam