我正在建立一个生产网站,并计划拥有大量不同角色的用户。我目前的做法是 redis/sessions 容器化自动缩放 Elastic beanstalk 部署。然而,随着用户的增加,使用 JWT 是否更明智、最具成本效益?听起来不错,但是将其放在本地存储中的想法似乎存在很大的安全风险?我只是想建立正确的方式来避免以后的麻烦。
问问题
56 次
1 回答
1
对于初学者,请考虑 JWT 不是会话存储的替代品。迁移到 JWT 后,您需要将任何会话状态数据存储在其他地方。JWT 将通过声明为您提供身份验证和授权。令牌本身已签名,因此您可以并且应该验证签名以确保真实性。JWT 适用于无状态应用、SPA 应用或跨应用身份验证。
其次,考虑您希望扩展到多大。在你需要更多东西之前,使用 Redis 进行会话存储很可能会让你走得很远。预计该限制将远远超过 1k req/sec。那时,您的架构中很可能有更多问题需要解决。跨多个 Redis 实例分片会话也将是增长的一种选择。
同时,优化会话存储的使用。不要在身份验证之外过度使用它。你做的越多,迁移到 JWT 的过程就越痛苦。
最后的一些想法:做你的研究。不要过早优化。但是你的头脑是在正确的地方考虑它。
于 2019-04-24T02:22:09.763 回答