我正在寻找一种在不使用数据库中的会话集合/表的情况下对 Passport.js 使用 Twitter 策略的方法。这样做的原因是我们将所有数据保存在会话集合中,这些数据可能会变得非常大,并且每当用户发出请求时我们都会保存数据库往返,因为我们不必每次都去数据库来获取会话数据。
无论如何,我们应该能够使用令牌(JSON Web 令牌)来验证用户,正如这篇精彩的文章所描述的那样:
https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens
但我很困惑为什么没有一种简单的方法可以用 Passport 做到这一点?(这篇文章在没有 Passport 的情况下做所有事情 - 但肯定 Passport 已经涵盖了这一点?)。
也许我想太多了,这样做的方法只是省略我在 Express 中使用数据库会话的调用,然后 Passport 已经足够聪明来处理 JWT?不知怎的,我对此表示怀疑。
例如,在我的 Express 服务器中仅注释掉这段代码肯定是不够的:
//app.use(expressSession({
// secret: 'arrete_x_paulette',
// store: new MongoStore({mongooseConnection: mongoose.connection}),
// saveUninitialized: true,
// resave: true,
// cookie: {
// secure: false,
// maxage: 6000000
// },
// proxy: false
//}));
和
//app.use(passport.session());
那么,使用 Passport 就够了吗?
为什么有人会使用存储在数据库中的会话而不是使用基于 JWT 的身份验证?