2013-04-26 16 views
7

Ho un piccolo problema. Sto sviluppando un'applicazione in PHP divisa in moduli. Ogni modulo è completamente indipendente, si trova su un server separato e ha un proprio dominio. ad esempio:Condividere una SESSIONE su più server con domini diversi

www.moduloprincipal.com.br, www.modulo2.com.br, www.modulo3.com.br, ecc ...

Il problema è che ho bisogno che quando un utente di autenticarsi a uno dei moduli (entrambi) l'utente può accedere allo stesso utente di altri moduli senza dover autenticarsi nuovamente.

Attualmente ogni applicazione si trova su un server diverso, ma se necessario si trovano nello stesso server, non sarebbe un problema.

IMPORTANTE:

  1. letto diverse discussioni, ma non ha trovato una soluzione veramente sicuro. Sarà interessante usare OAuth?

  2. Attualmente l'applicazione utilizza $ _SESSION per autenticare gli utenti, ma è possibile utilizzare $ _COOKIE senza problemi.

  3. sto utilizzando CodeIgniter

Tradotto da Google Translate. Siamo spiacenti ...

+0

Per ragioni OAuth non è la scelta giusta (e per un'alternativa), vedi [http://stackoverflow.com/questions/2033026/sso-with-cas-or-oauth](http:/ /stackoverflow.com/questions/2033026/sso-with-cas-or-oauth) –

risposta

9

Due opzioni dalla parte superiore della mia testa che si può esplorare:

  • Impostare tutti i server lo stesso percorso per il salvataggio i suoi dati di sessione, vedere session.save_path direttiva. Quella posizione potrebbe essere una condivisione NFS o una posizione NAS a cui tutti i tuoi server potrebbero accedere.

  • L'altra opzione è quella di implement a database session handler, quindi i dati di sessione potrebbero essere condivisi tra tutti i server che accedono allo stesso server di database. Quindi dai un'occhiata ai documenti PHP per custom session handlers.

+7

Potrebbe anche avere un server che funge da API che gestisce tutte le informazioni sulla sessione. –

Problemi correlati