Je travaille sur une application ajax qui sera intégrée dans une page wordpress. L'application ajax échange des données avec des servlets fonctionnant sur tomcat. Désormais, les servlets ont besoin d'un moyen de déterminer si une demande provient d'un utilisateur connecté à wordpress. Et si l'utilisateur est connecté, les servlets doivent également pouvoir déterminer l'ID des utilisateurs afin de pouvoir interroger la base de données. Si l'utilisateur n'est pas connecté, la demande sera refusée.
En d'autres termes, je dois autoriser une servlet à exécuter une requête uniquement si l'utilisateur à l'origine de la requête est connecté à wordpress (version 3.3.x). Le servlet (tomcat) et wordpress (apache2) s'exécutent sur la même machine physique et partagent la même base de données.
En théorie, cela pourrait facilement être résolu en procédant comme suit:
- Lors de la connexion wordpress, certains jetons utilisateur sont stockés dans une variable javascript.
- L'application ajax transfère le jeton utilisateur aux servlets à chaque appel.
- Les servlets utilisent le jeton pour interroger wordpress s'il est valide (c'est-à-dire si l'utilisateur est connecté) et exécuter ou refuser la demande.
La question est de savoir comment cela peut être mis en œuvre du côté wordpress?
Parce que, ce qui rend la théorie si compliquée, c'est le fait que je n'ai pas encore fait de programmation php.
Je pensais d'abord à transmettre le cookie wordpress_logged_in (auth) au servlet et laisser le servlet interroger wordpress si le cookie d'authentification est toujours valide. Mais il semble que cela ne puisse pas être fait, car wp_validate_auth_cookie () échoue toujours, même si les données de cookie d'un utilisateur connecté sont transmises. Une autre solution pourrait être de développer un plugin qui stocke l'ID session et l'ID utilisateur dans une table, qui pourrait facilement être interrogée par les servlets. Ou peut-être qu'il y a une autre solution ...