reactjs - ReactJs 如何检查 ExpressJs 生成的用户认证和 sessionID
问题描述
当用户通过身份验证时,我有一个 Nodejs 应用程序创建会话。我看到 Expressjs 将 sessionID 存储在一个 cookie 中,该 cookie 目前是 HttpOnly 并且会话信息本身存储在服务器端。
如何检查用户是否已通过身份验证并且是否存在来自 ReactJS(即浏览器端)的打开会话?我认为唯一的方法是尝试访问该 sessionID?什么是实现这一点的好方法?
谢谢。
解决方案
注册或登录应在 React 上向客户端响应必要的用户信息,以便将用户信息存储在应用程序状态(Redux/Flux)中。express 服务器存储为 HttpOnly cookie 的 sessionId 仅用于 Express 以唯一区分浏览器会话。
理想情况下,您还需要另一个 API 来返回在 Express 服务器端应该读取 sessionId cookie 并将 currentUser 信息返回给客户端的用户信息。假设,您登录并且用户信息存储在 UI 应用程序状态中,当您刷新浏览器时,此应用程序状态将被刷新。在这种情况下,此 API 将帮助使用当前登录的用户信息恢复应用程序状态。希望这可以帮助。
推荐阅读
- reactjs - React Cloudinary Video 无法在 iOS 中播放
- html - 有什么方法可以获取特定引导类的样式属性?
- zsh - 将退格键绑定到 zsh 中的任何内容
- python - 比较有序列表中的值
- android - 使用 Sceneform Android 在 3D 模型上绘制可渲染形状
- python - Pandas 对多个 csv 文件中匹配日期的列求和
- javascript - 在 Nigthwatchjs 中使用 Dropzone 上传文件
- css - 为什么第二个媒体查询不适用
- c# - Automapper ValueConverter 的单元测试用例,模拟映射器未返回预期模型
- keycloak - 如何将来自身份提供者的声明映射到 Keycloak 中的角色组?