Node.JS сессия без куки - PullRequest
       29

Node.JS сессия без куки

5 голосов
/ 17 февраля 2012

Я пытался, но обнаружил, что iOS 5 по умолчанию не принимает куки.Я пробовал много разных вещей, даже используя Redis, но все еще не могу сохранить сеанс для более чем одного запроса.

Без использования файлов cookie, какие еще есть варианты сеансов?Я собираюсь развернуть сырой модуль сеанса, используя Redis, где я просто посылаю свой собственный "идентификатор сеанса" туда и обратно, но кажется, что он может легко затормозить.

Ответы [ 2 ]

5 голосов
/ 17 февраля 2012

Если вы не можете заставить клиента поддерживать файлы cookie, возможно, вы можете поместить некоторые данные в LocalStorage, а затем передать их на сервер для подключения к сеансу и структурировать их как одностраничное приложение.

Это будет выглядеть примерно так:

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  

Поддерживаются ли веб-сокеты? Вы можете использовать Socket.io для транспортировки, что будет намного меньше задержек.

2 голосов
/ 17 февраля 2012

Я почти уверен, что вы захотите использовать куки.Другой альтернативой может быть добавление идентификатора сеанса к каждому запросу через параметр url и сохранение его в вашем приложении, используя какое-то промежуточное программное обеспечение, чтобы убедиться, что оно добавляется к каждому URL.Вы можете сделать это, проанализировав свои ответы или взломав механизм шаблонов, чтобы включить это в каждую ссылку и форму.Я нахожу странным, что в iOS нет куки.Я почти уверен, что это неверно. Можете ли вы дать ссылку, где вы это прочитали?

...