将authReducer与auth令牌一起使用是一种好习惯吗?

时间:2019-03-24 01:26:45

标签: reactjs redux jwt

我一直在阅读有关如何使用的各种教程,例如React + Redux应用程序中的JWT。

在这些教程中,JWT通常保存在本地存储中,并且具有到期日期。很好。

但是,我遇到了一些使用authReducer的示例,该示例从JWT onload读取并将布尔状态isAuthed设置为true或false。此状态用于处理UI更改,例如AuthedNavbar或设置私有路由。

我在这里的担心是authReducer状态变得陈旧。例如,如果用户保持应用程序打开状态,则即使令牌可能已过期,isAuthed状态仍然为true。

(当然,服务器端路由将受jwt保护,因此用户将无法访问资源。但是,它们的前端UX仍然很差。)

实际上,这与“单一事实来源”的原则相矛盾。在redux和本地存储中都设置了auth状态。

并非所有状态都必须在redux中处理。我们使用react本地状态并在redux之外处理路由器状态。

因此,我认为最好只使用本地存储作为事实来源。

您怎么看?希望得到一些建议!

1 个答案:

答案 0 :(得分:1)

不要将数据isAuthed保留在存储系统中。但只能使用access_token。这样,即使用户进行了更改也不会有问题。因为您将通过数据库系统进行检查,并验证access_token并从数据库中也了解isAuthed

相关问题