【发布时间】:2016-10-23 13:05:21
【问题描述】:
我是 Node 新手,正在尝试设置 Node 和 Passport 以在身份验证时创建 JWT。
我希望建立一个“无状态的认证机制”来减少对数据库的回传。
通过“无状态”,如果没有共享机密或 JWT 保存在数据库中,我假设如果服务器重新启动,所有已发布的 JWT(登录用户)都将失效,因此需要一个新的 JWT用户访问受保护的路由。我不希望用户在每次服务器重新启动或新实例旋转时重新登录。
我相信我可以将静态共享密钥传递给 Node 环境,我每次都可以使用它来生成不影响服务器重启的相同 JWT。
问题:
如果一个好的做法是传递共享密钥,我应该在哪里以及如何创建这个共享密钥?以及我必须传递哪些共享机密?
但是,如果将共享密钥传递给 Node 环境不是一个好的策略,我愿意听取建议吗?
更新
当我说“密钥”时,我指的是共享秘密。我会更新问题,以免造成混淆。
【问题讨论】:
-
为什么需要将密钥存储在数据库中?识别用户所需的信息通常存储在 JWT 本身中,服务器只需要知道密钥的秘密即可验证密钥的信息没有被更改。请参阅 this page 以直观地展示 JWT 的组成部分。
-
抱歉 - 我更新了问题。
标签: node.js express passport.js express-jwt