【发布时间】:2019-07-17 17:45:41
【问题描述】:
我正在开发一个带有 NodeJS/Express 后端的 React/Redux 客户端。 react 应用在 3000 端口上运行,后端在 443 端口上运行。
这个 React 应用有 3 个 react-router 路由(SignUp、Login 和 Home,最后一个是受保护的,只有经过身份验证的用户才能访问)。
当用户登录时,React 应用程序会使用电子邮件和密码向后端发出 post 请求。服务器在 mongoDB 数据库中搜索用户并返回带有httpOnly 标志的res.cookie。
cookie 是带有一些信息的 jwt,例如 isAdmin 标志。客户端中的 Home 路由有不同的选项,具体取决于用户是否为管理员。
我的 React 客户端如何安全地知道用户是否已登录以及用户是否为管理员?
我找到了 2 个解决方案:
- 使用 localStorage/sessionStorage 而不是 httpOnly cookie,但我被告知这是非常不安全的。
- 删除 httpOnly 标志,以便我的客户端可以读取 cookie。我已经对此进行了测试,效果很好,但同样,安全风险让我感到不安。
我感觉我在身份验证流程中遗漏了一些东西。 在此先感谢,并为我的英语不好感到抱歉。
【问题讨论】:
标签: node.js reactjs authentication cookies