【问题标题】:Node.JS session without cookies没有 cookie 的 Node.JS 会话
【发布时间】:2012-03-08 12:55:46
【问题描述】:

我一直在尝试,但我发现 iOS 5 默认情况下不接受 cookie。即使使用 Redis,我也尝试了许多不同的事情,但仍然无法让会话持续处理多个请求。

如果不使用 cookie,我还有哪些其他会话选项?我即将使用 Redis 推出一个粗略的会话模块,我只是在其中发送我自己的“会话 id”,但这似乎很容易刹车。

【问题讨论】:

    标签: session node.js cookies express connect


    【解决方案1】:

    如果您无法让客户端支持 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】:

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

      【讨论】:

      • 实际上你关于滚动你自己的会话的帖子几乎正是我所做的。我会在 github 上链接你。您应该能够将其保存在本地存储中。我没有看到这很可能是煎茶。看看这个---->gist.github.com/1155365
      猜你喜欢
      • 2012-02-09
      • 2016-07-02
      • 2011-04-10
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 2018-11-14
      相关资源
      最近更新 更多