JWT with Node & Passport:重启服务器
JWT with Node & Passport: Restarting server
我是 Node 的新手,正在尝试设置 Node 和 Passport 以在身份验证时创建 JWT。
我希望构建一个 "stateless authentication mechanism" 以减少来回访问数据库的需要。
通过 "stateless",如果 none 的共享机密或 JWT 保存在数据库中,我假设如果服务器重新启动,所有发出的 JWT(登录用户)都将失效,因此所有用户都需要一个新的 JWT 才能访问受保护的路由。我不希望用户每次重新启动服务器或启动新实例时都重新登录。
我相信我可以将静态共享机密传递到 Node 环境,我每次都可以使用它来生成不影响服务器重启的相同 JWT。
问题:
如果一个好的做法是传递共享机密,我应该在哪里以及如何创建这个共享机密?我必须传递哪些共享秘密?
但是,如果将共享秘密传递到 Node 环境不是一个好策略,我会洗耳恭听吗?
更新
当我说 "key(s)" 时,我的意思是共享秘密。我会更新问题,以免造成混淆。
实际上,将密钥作为环境传递是此类应用程序的推荐方式。
因为环境仅对 运行 应用程序可见,并且减少了泄露密钥的可能性(与其他应用程序代码提供的类似配置文件相比)。
通常您不会经常轮换密钥,假设您可以控制您的环境,通常每月轮换一次。
但请记住,密钥仅用于证明令牌是由您签名的,通常在令牌中仅包含少量信息(出于性能原因)是一种很好的做法。所以你仍然需要去数据库检索关于用户本身的额外信息。您可以在令牌中添加所有用户信息,但请记住,需要为每个请求发送令牌,这会增加开销。
如果你使用像supervisord这样的进程管理器,你可以在那里设置环境并为配置文件赋予适当的权限以避免密钥泄漏。
我通常使用环境将此类信息传递到我的节点应用程序,我将它用于 JWT、AWS 密钥、SMTP 凭证等。它使您的代码分离并避免可能的错误,例如将私钥推送到 public 代码版本控制系统,如 github.
我是 Node 的新手,正在尝试设置 Node 和 Passport 以在身份验证时创建 JWT。
我希望构建一个 "stateless authentication mechanism" 以减少来回访问数据库的需要。
通过 "stateless",如果 none 的共享机密或 JWT 保存在数据库中,我假设如果服务器重新启动,所有发出的 JWT(登录用户)都将失效,因此所有用户都需要一个新的 JWT 才能访问受保护的路由。我不希望用户每次重新启动服务器或启动新实例时都重新登录。
我相信我可以将静态共享机密传递到 Node 环境,我每次都可以使用它来生成不影响服务器重启的相同 JWT。
问题:
如果一个好的做法是传递共享机密,我应该在哪里以及如何创建这个共享机密?我必须传递哪些共享秘密?
但是,如果将共享秘密传递到 Node 环境不是一个好策略,我会洗耳恭听吗?
更新
当我说 "key(s)" 时,我的意思是共享秘密。我会更新问题,以免造成混淆。
实际上,将密钥作为环境传递是此类应用程序的推荐方式。
因为环境仅对 运行 应用程序可见,并且减少了泄露密钥的可能性(与其他应用程序代码提供的类似配置文件相比)。
通常您不会经常轮换密钥,假设您可以控制您的环境,通常每月轮换一次。
但请记住,密钥仅用于证明令牌是由您签名的,通常在令牌中仅包含少量信息(出于性能原因)是一种很好的做法。所以你仍然需要去数据库检索关于用户本身的额外信息。您可以在令牌中添加所有用户信息,但请记住,需要为每个请求发送令牌,这会增加开销。
如果你使用像supervisord这样的进程管理器,你可以在那里设置环境并为配置文件赋予适当的权限以避免密钥泄漏。
我通常使用环境将此类信息传递到我的节点应用程序,我将它用于 JWT、AWS 密钥、SMTP 凭证等。它使您的代码分离并避免可能的错误,例如将私钥推送到 public 代码版本控制系统,如 github.