我正在使用Passport.js本地策略在我的应用中处理身份验证。每当我进行更改时,我也会使用Nodemon自动刷新服务器。
问题是每当我进行更改时,我必须再次登录到应用程序。目前这只是开发,但同样的概念适用于处理请求的多个服务器(例如EC2负载均衡器)。所以我的问题是,如何在保留用户状态的同时使Passport.js无状态?
似乎必须有一种方法来保持服务器之间的状态和/或重新启动服务器。
答案 0 :(得分:2)
您有两种选择:
如果您已经拥有共享数据库,则第一个选项需要较少的设置,只需实例化商店并将其传递给您的应用程序,例如:
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
app.use(session({
secret: 'foo',
store: new MongoStore(options)
}));
第二个选项需要一个不同的Passport策略,如passport-jwt,或者可能完全抛弃Passport并直接在自定义中间件中使用jsonwebtoken。