2012-08-13 10 views
6

Ho cercato di trovare un modo per condividere i cookie su più sottodomini.Utilizzo dello stesso cookie su sottodomini selettivi

Impostazione del biscotto come:

setcookie('token', base64_encode(serialize($token)), time()+10800, '/', '.mydomain.com'); 

fa esattamente questo. Ma c'è un piccolo problema qui. Condividerà il cookie su tutti i sottodomini.

Il mio problema è che ho altri ambienti (Dev e test) impostati su 2 sottodomini. Sto cercando un modo per condividere i cookie tra sottodomini "selettivi". condividilo tra alcuni sottodomini e non condividilo tra gli altri. Non sono sicuro che esista qualcosa del genere.

Qualsiasi aiuto è apprezzato. Grazie.

+0

Si potrebbe semplicemente aggiungere un prefisso nei nomi dei cookie. dev_token, prod_token, qualunque cosa tu abbia bisogno. – Tchoupi

+1

Non penso che la soluzione per fare esattamente quello che vuoi esista. Quello che puoi fare è proteggere i cookie dall'accesso a tutti i sottodomini. Puoi codificare il tuo cookie in qualche modo e dare chiavi di sottodomini selettivi per decodificarlo. Oppure puoi impostare esplicitamente i cookie per ciascun dominio di cui hai bisogno nello stesso momento. Come se tu avessi dev_cookie e test_cookie nello stesso posto nel codice. – zysoft

+1

Per quanto ne so e altri hanno menzionato questo non è possibile. La tua unica soluzione è nominarli diversamente. A meno che tu non abbia un dominio diverso per i tuoi ambienti di sviluppo, il che sembra un po 'troppo. – diggersworld

risposta

0

Dopo aver riflettuto a lungo su questo argomento e aver letto tutti i preziosi commenti pubblicati sopra, suppongo che non ci sia una soluzione semplice a questo.

sarei potuto andare con la soluzione fornita da Adrien Hingert, ma ciò significherebbe un ulteriore controllo ogni volta che un utente entra in gioco.

Credo Mi rimane altra scelta, ma per spostare i miei ambienti dev e prova in un altro dominio.

Grazie mille a tutti voi ragazzi per i vostri pensieri.

1

Per quanto ne so, è possibile condividere su tutti i sottodomini utilizzando ".mydomain.com" (come si sta facendo) oppure si deve essere specifici e indirizzare solo un sottodominio utilizzando, ad esempio, "test". mydomain.com'.

È inoltre possibile utilizzare alcuni trucchi o soluzioni alternative, come il prefisso del nome del cookie e quindi il lato del server logico, ma non sono sicuro che sia la soluzione che si sta cercando.

0

L'attributo domain=.example.com rende in modo specifico il cookie disponibile per tutti i sottodomini. Basta rilasciare quell'attributo e il cookie può essere letto solo dal sottodominio che lo ha impostato.

È così facile.

Problemi correlati