node.js - 具有 session 或 JWT 的 Node 用于大型用户群应用程序?

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

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

最佳答案

对于初学者,请考虑 JWT 不是 session 存储的替代品。迁移到 JWT 后,您需要将任何 session 状态数据存储在别处。 JWT 将通过声明为您提供身份验证和授权。 token 本身已签名,因此您可以而且应该验证签名以确保真实性。 JWT 适用于无状态应用程序、SPA 应用程序或跨应用程序身份验证。

其次,考虑您希望扩展到多大。使用 Redis 进行 session 存储很可能会让您在需要更多东西之前走得更远。预计该限制将远远超过 1k 请求/秒。到那时,您的架构中很可能会有更多的问题需要解决。将 session 分片到多个 Redis 实例也是一种增长的选择。

与此同时,优化 session 存储的使用。不要在 auth 之外过度使用它。你做的越多,迁移到 JWT 就越痛苦。

一些最后的想法:做你的研究。不要过早优化。但是你的头脑在正确的位置来思考它。

关于node.js - 具有 session 或 JWT 的 Node 用于大型用户群应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55820945/

相关文章:

javascript - Express 数据模板与 Vue.js 数据冲突

node.js - 使用 Socket.io 向一个用户发送消息

c# - 使用 Azure Redis 在逻辑应用中进行缓存

javascript - 加密,然后将访问 token 存储在 localStorage 中

security - 在基于 token 的身份验证中使用刷新 token 安全吗?

node.js - NodeJS 中的 AWS RDS SSL 连接错误

node.js - 可以将 npm 3.x 与 nodejs 4.x 一起使用吗?

javascript - 在 nodeJs v4.4.2 中使用 ES6 模板文字

redis - 如何在 .Net 应用程序中查看所有存储 session 的 REDIS 键和值?

amazon-web-services - AWS API Gateway 身份验证错误 IncompleteSignatureException 使用带有 Auth0 的 JWT