【问题标题】:How to use express sessions over CORS requests如何通过 CORS 请求使用快速会话
【发布时间】:2018-10-26 18:06:54
【问题描述】:

我试图在用户登录后在我的 nodejs 后端保持会话。客户端是一个应用程序,登录是通过 ajax 请求完成的。我想知道这是否可能。

【问题讨论】:

    标签: node.js cordova express express-session


    【解决方案1】:

    浏览器中的登录会话通常通过将 cookie(通常是加密的)发送回客户端来工作,其中包含服务器端会话的某种密钥/索引。然后,客户端在每个后续请求中都显示该 cookie,以便向服务器标识自己,以便服务器可以将正确的登录名与每个新请求相关联。这就是快速会话的工作原理。

    要在应用程序中完成这项工作,您只需在每个 ajax 请求中保存和发送 cookie。您不会在您的应用程序中显示任何代码,因此我们无法提出特定的编码建议,但通常支持称为“cookie jar”的东西,它是与捕获 cookie 的每个请求和响应相关联的代码,保存它们并将它们与后续请求一起发送。如果您使用的通信库没有这样的功能,您可以找到一些有的,或者您可以自己编写代码。问题是在响应中检索 set-cookie 标头,将其保存以供以后使用,然后在每个新请求中,使用该值设置 cookie 标头。

    如果 cookie 设置了过期日期/时间,那么您的 cookie 处理代码应该遵守这一点。您还必须小心遵循正确的程序,仅将 cookie 发送到它们所属的目的地(域和路径限制),否则您可能会无意中打开安全漏洞。如果你能找到一个已经实现的、遵循所有正确的 cookie 规则的解决方案,那显然是最好的。

    有关如何从服务器接收 cookie 并将其发送回服务器的详细信息,请参阅herehere

    【讨论】:

    • 感谢您的信息,非常有帮助
    猜你喜欢
    • 1970-01-01
    • 2020-07-01
    • 2019-10-13
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2021-05-30
    • 2021-10-22
    • 1970-01-01
    相关资源
    最近更新 更多