【发布时间】:2019-08-14 15:22:43
【问题描述】:
我一直在阅读有关如何在 React + Redux 应用程序中使用 JWT 的各种教程。
在这些教程中,JWT 通常保存在本地存储中并具有到期日期。这很好。
但是,我遇到了一些使用 authReducer 的示例,该示例从 JWT onload 读取并将布尔状态 isAuthed 设置为 true 或 false。此状态用于处理 UI 更改,例如 AuthedNavbar 或设置私有路由。
我担心的是 authReducer 状态变得陈旧。例如,如果用户保持应用打开,isAuthed 状态仍然为真,即使令牌可能已过期。
(当然,服务器端的路由会被 jwt 保护,因此用户将无法访问资源。但是,他们仍然会在前端有一个糟糕的 UX。)
确实,这与“单一事实来源”的原则相矛盾。身份验证状态在 redux 和本地存储中都设置。
并非所有状态都必须在 redux 中处理。我们使用 react 本地状态并在 redux 之外处理路由器状态。
因此,我认为最好只使用本地存储作为事实来源。
你怎么看?希望得到一些建议!
【问题讨论】: