javascript - Passport.js - 对不同服务器使用相同的 token

标签 javascript node.js mongodb amazon-web-services passport.js

我使用 Passport.js 和 MongoDB 进行用户登录和 postAPI 身份验证。但是,每当我将 Node 服务器部署到另一个 AWS 实例时,我都需要完成注册过程、登录并获取新 token 。

我知道我可以从 MongoDB 查看已保存的用户及其 jwt token 。无论如何,我可以复制 token ,并在初始化新数据库时,默认保存相同的用户名-jwttoken 对,这样我就可以使用相同的 token 字符串(不使用密码,尽管它更容易完成)来传递 Passport 认证测试?

谢谢!

最佳答案

听起来您的部署过程涉及拆除所有内容(应用程序和 MongoDB)并从零开始重建,可能使用一些种子数据,但没有 AWS 实例中的任何“实时”数据。这里有一些想法:

  1. 作为部署过程的一部分,将所有数据从旧 MongoDB 实例复制到新实例。这将确保用户出现在新实例上,并且(应该)确保用户不必再次经历注册过程。我对 MongoDB 不太熟悉,所以我不知道如何做到这一点,但我确信有一种方法 - 也许您可以将数据文件从一个复制到另一个?

  2. 使用两台服务器设置环境:MongoDB 服务器和应用程序服务器。通过这种方式,您可以拆除应用程序并仅为该应用程序创建一个新的 AWS 实例,而无需接触 MongoDB 服务器。只需更新新应用程序实例中的 MongoDB 连接配置以指向您一直在使用的同一 MongoDB 服务器。

如果您的应用程序非常小且没有太多数据,则第一个选项更适合。如果您的数据库变得太大,您将在部署过程中经历长时间的停机,因为您需要关闭应用程序,将数据从旧的 Mongo 实例中复制出来,将数据复制到新的 Mongo 实例中,然后将应用程序恢复向上。

第二个选项可能是更好的一个,尽管它确实需要一些网络和保护 MongoDB 的知识,以便只有您的应用程序才能访问您的数据。

关于javascript - Passport.js - 对不同服务器使用相同的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45376691/

相关文章:

Javascript 模块模式、嵌套函数和子模块

javascript - document.domain 可以包含端口号吗?

java - 在java中通过字符串切换大小写 < 1.7

javascript - 将嵌入标题设置为可点击的链接

node.js - VSCode 的 launch.json 中的 args 和 runtimeArgs 有什么区别?

php - 从 PHP 打印 MongoDB 日期

javascript - 使用 Laravel 的 Ajax Post 错误 422

c# - MongoDB 中枚举的自定义序列化

node.js - 使用 NODEJS 保存到 Mongodb 后如何获得响应

javascript - 将 Datable 与 Nodejs socket.io 一起使用