Sto lavorando a un'applicazione Ajax che verrà incorporata in una pagina di wordpress. L'app ajax scambia dati con servlet in esecuzione su Tomcat. Ora i servlet hanno bisogno di un modo per determinare se una richiesta proviene da un utente che ha effettuato l'accesso a wordpress. E se l'utente ha effettuato l'accesso, anche i servlet devono essere in grado di determinare l'id utente per poter interrogare il database. Se l'utente non lo ha registrato, la richiesta verrà rifiutata.
Quindi, in altre parole, devo consentire a un servlet di eseguire una richiesta solo se l'utente che ha causato la richiesta ha effettuato l'accesso a wordpress (versione 3.3.x). Entrambi, servlet (tomcat) e wordpress (apache2) vengono eseguiti sulla stessa macchina fisica e condividono lo stesso database.
In teoria questo potrebbe essere facilmente risolto nel modo seguente:
- Durante l'accesso a wordpress, alcuni token utente vengono archiviati in una variabile javascript.
- L'app ajax inoltra l'utente token ai servlet ad ogni chiamata.
- I servlet usano il token per interrogare wordpress se è valido (cioè se l'utente ha effettuato l'accesso) ed eseguire o rifiutare la richiesta.
La domanda è: come può essere implementato sul lato wordpress?
Perché, ciò che rende la teoria così complicata è il fatto che non ho ancora fatto alcuna programmazione PHP.
Per prima cosa stavo pensando di trasmettere il cookie wordpress_logged_in (auth) al servlet e lasciare che il servlet interroghi wordpress se il cookie di autenticazione è ancora valido. Ma a quanto pare, questo non può essere fatto, poiché wp_validate_auth_cookie () fallisce sempre, anche se i dati dei cookie di un utente connesso vengono passati. Un'altra soluzione potrebbe essere quella di sviluppare un plug-in che memorizzi sessionid e userid in una tabella, che potrebbe essere facilmente interrogata dai servlet. O forse c'è un'altra soluzione ...