Dove vengono memorizzate le sessioni in WordPress?

11 apr 2015, 19:47:18
Visualizzazioni: 19K
Voti: 2

Ho bisogno di poter validare l'integrità della sessione da un'applicazione esterna. Non riesco a trovare dove viene memorizzata la sessione in WordPress?

Ho costruito un'app RESTful che riceverà il token di sessione come header e vorrei poter caricare l'utente associato a quella sessione. È possibile? Sono sicuro di sì, ma non riesco a trovare informazioni. Ho provato a cercare nel codice ma mi perdo rapidamente.. Qualcuno può almeno indicarmi in quale tabella dovrei controllare?

0
Tutte le risposte alla domanda 2
1

Come WordPress memorizza i cookie (lato client, come indicato da @birgire): https://codex.wordpress.org/WordPress_Cookies

Dubito che questo possa mai funzionare da un sottodominio separato, poiché il dominio del cookie è solitamente qualificato completamente con l'siteurl di WordPress (qualcuno può correggermi se sbaglio).

Se lo stessi facendo con un'altra applicazione sullo stesso dominio, dovresti utilizzare la funzione wp_validate_auth_cookie() (in wp-includes/pluggable.php) - che esamina $_COOKIES, genera un hash dal record dell'utente nel database e verifica se corrisponde al cookie. Se corrisponde, otterrai il suo ID utente.

11 apr 2015 20:59:36
Commenti

Forse la costante COOKIE_DOMAIN potrebbe essere utile in questo caso?

birgire birgire
13 apr 2015 03:19:22
3

Le sessioni di WordPress vengono memorizzate in base alle impostazioni del tuo PHP, per impostazione predefinita nel tuo file system. Controlla il tuo file PHP.ini per l'impostazione session.save_path. Tieni presente che WordPress non crea una sessione a meno che l'utente non effettui l'accesso.

Supponendo che la tua applicazione "esterna" sia sullo stesso server e funzioni come PHP, potresti semplicemente aprire la stessa sessione utilizzando:

session_id($session_token);
session_start();
11 apr 2015 20:00:35
Commenti

WordPress non memorizza sessioni lato server per gli utenti loggati, ma utilizza invece cookie lato client, per quanto ne so. Puoi approfondire?

birgire birgire
11 apr 2015 20:20:35

È sullo stesso server, sottodominio diverso. Come ciò mi permetterebbe di caricare la sessione? Grazie per la tua risposta.

Dude from ticketing world Dude from ticketing world
11 apr 2015 20:20:45

@birgire Anche io lo sapevo. Ma dopo la risposta di Oliver, in realtà sono in dubbio. +1 per il tuo commento.

Mayeenul Islam Mayeenul Islam
12 apr 2015 06:41:53