2012-02-17 17 views
5

Lo he estado intentando, pero he descubierto que iOS 5 de forma predeterminada no acepta cookies. He intentado muchas cosas diferentes incluso con Redis, pero todavía no puedo obtener una sesión para persistir en más de una solicitud.Node.JS sesión sin cookies

Sin usar cookies, ¿qué otras opciones de sesión tengo? Estoy por rodar un crudo módulo de sesión usando Redis donde simplemente envío mi propia "identificación de sesión", pero parece que podría frenar con facilidad.

Respuesta

2

Estoy casi seguro de que querrá utilizar las cookies. La otra alternativa sería agregar un ID de sesión a cada solicitud a través de un parámetro de URL y persistir en su aplicación aprovechando algún tipo de middleware para asegurarse de que se anexe a cada URL. Puede hacerlo analizando sus respuestas o secuestrando su motor de plantillas para incluir esto en cada enlace y formulario. Me parece realmente extraño que iOS no tenga cookies. Estoy casi seguro de que esto es incorrecto, ¿pueden vincular dónde lo leyeron?

+0

En realidad, su publicación acerca de rodar su propia sesión es casi exactamente lo que he hecho. Lo conectaré con Github. Debería poder conservarlo en el almacenamiento local. No vi que esto sea lo más probable sencha. Mira esto ----> https://gist.github.com/1155365 –

5

Si no puede hacer que el cliente admita cookies, quizás pueda poner algunos datos en LocalStorage y luego comunicar eso al servidor para conectarse a la sesión y estructurarlo como una aplicación de una sola página.

Se vería algo como esto:

server       |   client 
send initial payload, with token -->  store token in LocalStorage 
initial payload contains some script 

           <-- XHR request for /data?sessid=XXXXX 
look up session, do stuff  --> handle result, update DOM, do more XHR 

son los conectores de web compatible? Podría usar Socket.io para hacer el transporte, que sería mucho menos latencia.