每次使用passport nodejs都需要安装express-session吗?
我正在使用Oauth(Google)与Passport.js
和Nodejs
的教程,The Net Ninja one
他没有提到快速会议,这对他很有效
当我尝试它时,它给了我错误:
Login sessions require session support. Did you forget to use `express-session` middleware?
字符串
当我安装了express-session
,并做了类似这样的事情
var session = require('express-session');
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: false,
cookie: { secure: true }
}));
型
......很好!
那么,我必须使用express-session
吗?每次使用passport
oauth时都应该这样做吗?
1条答案
按热度按时间dohp0rv51#
Web应用程序需要在用户从一个页面浏览到另一个页面时识别用户的能力。这一系列的请求和响应,每一个都与同一个用户相关联,称为会话。
https://www.passportjs.org/concepts/authentication/sessions/
会话允许您跨多个请求保持用户身份验证。如果没有会话,每个请求都将被视为一个新的请求,用户必须一次又一次地验证自己。
当您使用
express-session
时,Passport将已验证用户的信息存储在会话cookie中。这允许您在多个请求之间保持用户身份验证。但是,您可以在Passport中禁用会话支持:Passport js authentification without sessions.的
一旦禁用了会话支持,您将需要以不同的方式存储身份验证信息。一种方法是使用JSON Web令牌(JWT)。JWT是一种将用户信息存储在令牌中的方法,该令牌可以在客户端和服务器之间传递。JWT是无状态的,所以它们不需要会话。
看一看:https://www.passportjs.org/packages/passport-jwt/的