【发布时间】:2012-03-08 12:55:46
【问题描述】:
我一直在尝试,但我发现 iOS 5 默认情况下不接受 cookie。即使使用 Redis,我也尝试了许多不同的事情,但仍然无法让会话持续处理多个请求。
如果不使用 cookie,我还有哪些其他会话选项?我即将使用 Redis 推出一个粗略的会话模块,我只是在其中发送我自己的“会话 id”,但这似乎很容易刹车。
【问题讨论】:
标签: session node.js cookies express connect
我一直在尝试,但我发现 iOS 5 默认情况下不接受 cookie。即使使用 Redis,我也尝试了许多不同的事情,但仍然无法让会话持续处理多个请求。
如果不使用 cookie,我还有哪些其他会话选项?我即将使用 Redis 推出一个粗略的会话模块,我只是在其中发送我自己的“会话 id”,但这似乎很容易刹车。
【问题讨论】:
标签: session node.js cookies express connect
如果您无法让客户端支持 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 进行传输,这样延迟会少很多。
【讨论】:
我几乎可以肯定您会想要使用 cookie。另一种选择是通过 url 参数将会话 id 附加到每个请求,并利用某种中间件将其保留在您的应用程序中,以确保将其附加到每个 URL。您可以通过解析您的回复或劫持您的模板引擎以将其包含在每个链接和表单中来做到这一点。我发现 iOS 没有 cookie 真的很奇怪。我几乎可以肯定这是不正确的,你能链接你读到的地方吗?
【讨论】: