【发布时间】:2020-02-16 12:06:28
【问题描述】:
我正试图弄清楚我应该如何保持身份验证。
假设用户使用电子邮件和密码成功验证。那么服务器生成并返回两个令牌:
- 要存储在浏览器存储中的访问令牌(jwt 过期 15 分钟)
- refreshtoken(jwt 过期 7 天)作为安全 cookie。
当将 accesstoken 存储在本地存储(或会话存储)中时,React 应用程序将简单地检查它是否存在于存储中并继续渲染私有路由。所以这意味着如果用户有一个无效/被盗的访问令牌,React 似乎仍然会暂时呈现私有页面(尽管没有私有内容),直到令牌被检查并失效。这是一种奇怪的行为吗?
在这种情况下,React 应用程序是否应该在每次用户访问私有路由时验证和刷新令牌?以及它获取私人数据的任何时间?
目前,我将访问令牌和刷新令牌都分配给了安全 cookie,并且 React 中的私有路由总是在呈现私有页面之前刷新令牌。只要用户拥有有效的 cookie,这就会导致登录页面在呈现任何私人页面之前短暂闪烁。
我试图弄清楚在验证令牌时 React 应该呈现什么,以及是否应该在每次加载私有路由和获取私有数据时刷新令牌。
【问题讨论】:
标签: node.js reactjs cookies jwt