web-dev-qa-db-fra.com

Headless Wordpress: Comment authentifier les requêtes frontales?

J'imagine Wordpress sur le back-end pour travailler avec React.js sur le front-end comme ceci:

  1. Wordpress est installé sur http://example.com/api
  2. Le script React.js est chargé dans http://example.com/index.html, via des balises de script, puis injecté dans une racine div

Il y a cependant un problème. Sans wordpress contrôlant l'enregistrement et la mise en file d'attente, je ne vois pas comment localiser un nonce dans le fichier de script React.js.

Sans le nonce, les routes ne seraient pas authentifiables car la vérification des cookies l'exige dans le X-WP-Nonce entête. https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

Une demande d'API pourrait être faite pour un nonce, mais la route serait nécessairement non protégée, ce qui la rend très peu sécurisée.

Quelle est la solution pour ceci? Comment allez-vous configurer les headless wordpress pour transmettre les informations d'authentification, comme un nonce, à vos fichiers de script frontaux?

2
Sean Dezoysa

La méthode d'authentification nonce est uniquement pour les demandes effectuées à partir de WordPress, comme décrit dans votre propre lien (accent sur le mien):

Il est important de garder à l'esprit que cette méthode d'authentification repose sur WordPress cookies. Par conséquent, cette méthode n'est applicable que lorsque le REST L'API est utilisée à l'intérieur de WordPress et l'utilisateur actuel est connecté. En outre, l'utilisateur actuel doit avoir la capacité appropriée pour effectuer la action en cours.

Votre lien décrit ensuite d'autres méthodes disponibles pour les demandes distantes:

Bien que l'authentification par cookie soit le seul mécanisme d'authentification disponible en mode natif dans WordPress, des plugins peuvent être ajoutés pour prendre en charge d'autres modes d'authentification qui fonctionneront à partir d'applications distantes. Certains exemples de plugins sont OAuth 1.0a Server , Application Passwords et JSON Web Tokens .

Si vous faites des demandes authentifiées à partir d'une application React en dehors de WordPress, vous devez utiliser l'une de ces méthodes.

1
Jacob Peattie