具有会话或大型用户基础应用程序的JWT的节点?

时间:2019-04-24 00:04:48

标签: node.js redis jwt session-cookies role-based-access-control

我正在建立一个生产网站,并计划拥有大量具有不同角色的用户。我当前的实践是redis / sessions容器化的自动缩放的Elastic beantalk部署。但是,随着用户的增加,使用JWT会更明智且最具成本效益吗?听起来不错,但是将其保存在本地存储中的想法似乎会带来很大的安全风险?我只想正确构建它,以免日后头疼。

1 个答案:

答案 0 :(得分:1)

对于初学者,请考虑JWT不能替代会话存储。转移到JWT后,您需要将所有会话状态数据存储在其他位置。 JWT将通过声明为您提供身份验证和授权。令牌本身已签名,因此您可以并且应该验证签名以确保真实性。 JWT适用于无状态应用程序,SPA应用程序或跨应用程序身份验证。

第二,考虑您希望扩展到多大。使用Redis进行会话存储很可能会使您走得更远。预计该限制将超过1k req / sec。到那时,您的体系结构中很有可能要解决更多的问题。在多个Redis实例之间共享会话也是一种增长的选择。

同时,优化对会话存储的使用。不要过度使用auth。您做的越多,向JWT的迁移就越痛苦。

一些最终想法:进行研究。不要过早优化。但是,您的头脑正处于思考的正确位置。