2012-04-27 15 views
7

Estoy implementando un servicio web como parte de un sitio de Symfony2 al que se accederá usando JSONp e iframes de otro sitio (estático). Cuando un usuario inicia sesión usando un iFrame, Safari no guarda la sesión, así que guardo el ID de sesión en las cookies del sitio estático usando javascript, y lo devuelvo en los parámetros GET o POST de las solicitudes, lo cual está funcionando bien. .¿Hay alguna manera de evitar que Symfony2 envíe cookies de sesión para ciertas rutas?

El problema es que en otros navegadores, la cookie de sesión para el servicio web se conserva, lo que significa que cuando el usuario cierra la sesión, de hecho todavía están conectados al sitio de Symfony.

¿Existe alguna manera de que, para el servicio web solo parte del sitio de Symfony, desactive las cookies de sesión PHP, preferiblemente de forma amigable para Symfony2 (en lugar de, por ejemplo, jugar con .htaccess)?

Todavía quiero una sesión, pero la mantendré pasando una variable PHPSESSID en todas las solicitudes que haga.

Respuesta

11

This podría ser lo que estás buscando. Tienen cortafuegos sin estado:

En su security.yml

# app/config/security.yml 
security: 
    firewalls: 
     main: 
      stateless: true 
+0

creo que lo he intentado y no funcionó con los inicios de sesión en base de formulario o algo así. – rjmunro

+0

Ah basado en formulario. Incluso en los documentos dice que los inicios de sesión basados ​​en formularios usarán sesiones y cookies. Estoy haciendo un servicio web sin estado, lo mismo hice con el truco –

+0

Ver: [Symfony Book - Security - Autenticación sin estado] (http://symfony.com/doc/current/book/security.html#stateless-authentication) – flu

Cuestiones relacionadas