没有cookie的Node.JS会话

Mit*_*ens 5 cookies session connect node.js express

我一直在尝试,但我发现iOS 5默认不接受cookie.即使使用Redis,我一直在尝试许多不同的东西,但仍然无法让一个会话持续存在多个请求.

不使用cookie,我还有其他会话选项吗?我即将使用Redis滚动一个粗略的会话模块,我只是发送自己的"会话ID",但这似乎很容易制动.

isa*_*acs 5

如果您无法让客户端支持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  
Run Code Online (Sandbox Code Playgroud)

是否支持网络套接字?您可以使用Socket.io进行传输,这将减少很多延迟.


j_m*_*lly 2

我几乎可以肯定您会想要使用cookie。另一种选择是通过 url 参数将会话 ID 附加到每个请求,并利用某种中间件将其保留在您的应用程序中,以确保其附加到每个 URL。您可以通过解析您的响应或劫持您的模板引擎以将其包含在每个链接和表单中来实现此目的。我觉得 iOS 没有 cookie 很奇怪。我几乎可以肯定这是不正确的,你能链接到你读到的地方吗?