【发布时间】:2018-10-26 18:06:54
【问题描述】:
我试图在用户登录后在我的 nodejs 后端保持会话。客户端是一个应用程序,登录是通过 ajax 请求完成的。我想知道这是否可能。
【问题讨论】:
标签: node.js cordova express express-session
我试图在用户登录后在我的 nodejs 后端保持会话。客户端是一个应用程序,登录是通过 ajax 请求完成的。我想知道这是否可能。
【问题讨论】:
标签: node.js cordova express express-session
浏览器中的登录会话通常通过将 cookie(通常是加密的)发送回客户端来工作,其中包含服务器端会话的某种密钥/索引。然后,客户端在每个后续请求中都显示该 cookie,以便向服务器标识自己,以便服务器可以将正确的登录名与每个新请求相关联。这就是快速会话的工作原理。
要在应用程序中完成这项工作,您只需在每个 ajax 请求中保存和发送 cookie。您不会在您的应用程序中显示任何代码,因此我们无法提出特定的编码建议,但通常支持称为“cookie jar”的东西,它是与捕获 cookie 的每个请求和响应相关联的代码,保存它们并将它们与后续请求一起发送。如果您使用的通信库没有这样的功能,您可以找到一些有的,或者您可以自己编写代码。问题是在响应中检索 set-cookie 标头,将其保存以供以后使用,然后在每个新请求中,使用该值设置 cookie 标头。
如果 cookie 设置了过期日期/时间,那么您的 cookie 处理代码应该遵守这一点。您还必须小心遵循正确的程序,仅将 cookie 发送到它们所属的目的地(域和路径限制),否则您可能会无意中打开安全漏洞。如果你能找到一个已经实现的、遵循所有正确的 cookie 规则的解决方案,那显然是最好的。
【讨论】: