首页 > 解决方案 > 在 React 中存储 Express 会话 ID

问题描述

我在理解使用 Express session(backend) + React(frontend) 进行身份验证的步骤时遇到问题。当用户登录服务器时,使用用户 ID 设置会话 cookie 对象,这样它可以识别是否用户是否登录...

客户端呢?当用户登录并生成一个令牌时,我将其发送回 React 应用程序并将其保存在 localStorage 中以用于我以后发出的每个请求?我听说这不安全....所以我问你我应该如何实施?如何保存从服务器获得的令牌以在以后发出请求时使用它?我能想到的一种方法是在服务器端发出另一个 get 请求,它返回 session.userId 所以我可以看到那是否是真的然后用户登录了......我只是想弄清楚如何实现它

谢谢!

标签: node.jsreactjsexpress

解决方案


浏览器实现了 cookie 存储,您不必在客户端做任何显式的操作来维护快速会话。当身份验证第一次发生时,服务器向客户端发送一个标头,指示它存储一个 cookie,浏览器将保留该 cookie 并在所有后续请求中将其发送回。这些都不需要在客户端脚本(即您的 javascript 代码)中发生。

您不需要将 cookie 存储在本地存储中,通常不应该,会话 cookie 将是“httponly”,这意味着客户端脚本被禁止访问它们。这是为了在 XSS 的情况下减轻会话窃取的可能性。


推荐阅读