2012-08-13 42 views
6

He estado tratando de encontrar una forma de compartir cookies en varios subdominios.Uso de la misma cookie en subdominios selectivos

Ajuste de la cookie como:

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

hace exactamente eso. Pero hay un pequeño problema aquí. Esto compartirá la cookie en todos los subdominios.

Mi problema es que tengo otros entornos (Dev y prueba) configurados en 2 subdominios. Estoy buscando una forma de compartir cookies en subdominios "selectivos". es decir, compartir en algunos subdominios y no compartir entre otros. No estoy seguro si algo como esto existe.

Cualquier ayuda es apreciada. Gracias.

+0

Puede agregar un prefijo en sus nombres de cookies. dev_token, prod_token, lo que sea que necesites. – Tchoupi

+1

No creo que exista la solución para hacer exactamente lo que quiere. Lo que puede hacer es proteger su cookie del acceso a todos los subdominios. Puede codificar su cookie de alguna manera y dar claves de subdominios selectivos para decodificarla de nuevo. O puede establecer explícitamente cookies para cada uno de los dominios que necesita al mismo tiempo. Al igual que establece dev_cookie y test_cookie en el mismo lugar en el código. – zysoft

+1

Que yo sepa y otros han mencionado esto no es posible. Su única solución es nombrarlos de manera diferente. A menos que obtenga un dominio diferente para sus entornos de desarrollo, lo que parece un poco demasiado. – diggersworld

Respuesta

0

Después de pensar e investigar mucho al respecto y leer todos los valiosos comentarios publicados anteriormente, supongo que no hay una solución directa a esto.

que podría haber ido con la solución proporcionada por Adrien Hingert, pero eso significaría una comprobación adicional cada vez que un usuario entra en acción.

supongo que no me queda otra opción que mover los entornos de pruebas y desarrollo a otro dominio

Muchas gracias a todos ustedes por sus ideas.

1

Por lo que yo sepa, puede compartir todos los subdominios usando '.midominio.com' (como lo está haciendo) o tiene que ser específico y orientar solo un subdominio utilizando, por ejemplo, 'prueba. mydomain.com '.

También puede utilizar algunos trucos o soluciones, como el prefijo del nombre de la cookie y luego el lado del servidor lógico, pero no estoy seguro de si esta es la solución que está buscando.

0

El atributo domain=.example.com hace que la cookie esté disponible específicamente para todos los subdominios. Simplemente suelte ese atributo y la cookie solo puede ser leída por el subdominio que lo configuró.

Es así de fácil.

Cuestiones relacionadas