如何通过 CORS 请求使用快速会话

How to use express sessions over CORS requests

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

浏览器中的登录 session 通常通过将 cookie(通常是加密的)发送回客户端来工作,其中包含某种 key/index 到 server-side session.然后客户端在每个后续请求中提供该 cookie,以便向服务器标识自己,以便服务器可以将正确的登录名与每个新请求相关联。这就是 express-session 的工作原理。

要在应用程序中实现此功能,您只需在每个 ajax 请求中保存和发送 cookie。您没有在您的应用程序中显示任何代码,因此我们无法提出具体的编码建议,但通常支持称为 "cookie jar" 的代码,该代码与捕获 cookie 的每个请求和响应相关联, 保存它们并将它们与后续请求一起发送。如果您使用的通信库没有这样的功能,您可以找到一些有的,也可以自己编写代码。这是在响应中检索 set-cookie header 的问题,将其保存以备后用,然后在每个新请求中,将 cookie header 设置为该值。

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

有关如何从服务器接收 cookie 并将其发送回服务器的更多信息,请参阅 here and here