Express Passportjs成功回调从未调用
我正在尝试在express中使用passport js和sequalize实现本地身份验证。我遇到的问题是成功的身份验证不会触发成功回调。日志显示已找到用户,但用户对象从未记录在请求回调中,也未激发res.send 路线和战略Express Passportjs成功回调从未调用,express,sequelize.js,passport.js,Express,Sequelize.js,Passport.js,我正在尝试在express中使用passport js和sequalize实现本地身份验证。我遇到的问题是成功的身份验证不会触发成功回调。日志显示已找到用户,但用户对象从未记录在请求回调中,也未激发res.send 路线和战略 passport.use( 'local', new LocalStrategy( { usernameField: 'email', passwordField: 'password', passReqToCallba
passport.use(
'local',
new LocalStrategy(
{
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true,
},
(req, email, password, done) => {
// find user
User.findOne({ where: { email } }).then(user => {
if (!user) {
return done(null, false);
}
if (password !== user.password) {
return done(null, false);
}
console.log('user found!');
return done(null, user);
});
},
),
);
app.use(passport.initialize());
// routes
app.post(
'/login',
passport.authenticate('local'),
(req, res) => {
console.log(req.user);
res.send('logged in');
// const expiresIn = 60 * 60 * 24 * 180; // 180 days
// const token = jwt.sign(req.user, config.auth.jwt.secret, { expiresIn });
// res.cookie('id_token', token, { maxAge: 1000 * expiresIn, httpOnly: true });
},
);
应用程序日志
express:router:layer new '/' +0ms
express:router:route new '/login' +1ms
express:router:layer new '/login' +0ms
express:router:route post '/login' +0ms
express:router:layer new '/' +0ms
express:router:route post '/login' +0ms
express:router:layer new '/' +0ms
express:router:route new '/users' +0ms
express:router:layer new '/users' +0ms
express:router:route get '/users' +0ms
express:router:layer new '/' +0ms
express:router:route new '/signup' +0ms
express:router:layer new '/signup' +1ms
express:router:route post '/signup' +0ms
express:router:layer new '/' +0ms
express:router use '/' <anonymous> +0ms
express:router:layer new '/' +0ms
express:router use '/' <anonymous> +0ms
express:router:layer new '/' +0ms
express:router use '/' <anonymous> +0ms
express:router:layer new '/' +0ms
express:application set "port" to '3001' +0ms
Executing (default): SELECT 1+1 AS result
Connection has been established successfully.
express:router dispatching POST /login +4s
express:router query : /login +2ms
express:router expressInit : /login +0ms
express:router favicon : /login +2ms
express:router logger : /login +0ms
express:router jsonParser : /login +2ms
express:router urlencodedParser : /login +28ms
express:router cookieParser : /login +0ms
express:router serveStatic : /login +1ms
express:router initialize : /login +0ms
Executing (default): SELECT "id", "firstName", "lastName", "username", "email", "password", "createdAt", "updatedAt" FROM "users" AS "user" WHERE "user"."email" = 'a' LIMIT 1;
user found!
express:router <anonymous> : /login +25ms
express:router <anonymous> : /login +1ms
express:view require "jade" +0ms
express:view lookup "error.jade" +190ms
express:view stat "/home/zmigaddo/sc/views/error.jade" +0ms
express:view render "/home/zmigaddo/sc/views/error.jade" +1ms
POST /login 500 346.104 ms - 1910
express:router:layer new'/'+0ms
快速:路由器:路由新“/登录”+1ms
快速:路由器:层新'/login'+0ms
快速:路由器:路由post'/登录'+0ms
快速:路由器:层新“/”+0ms
快速:路由器:路由post'/登录'+0ms
快速:路由器:层新“/”+0ms
快速:路由器:路由新“/用户”+0ms
快速:路由器:层新“/用户”+0ms
快速:路由器:路由获取“/用户”+0ms
快速:路由器:层新“/”+0ms
快速:路由器:路由新“/注册”+0毫秒
快速:路由器:层新“/注册”+1ms
快车:路由器:路由桩“/注册”+0毫秒
快速:路由器:层新“/”+0ms
快速:路由器使用“/”+0ms
快速:路由器:层新“/”+0ms
快速:路由器使用“/”+0ms
快速:路由器:层新“/”+0ms
快速:路由器使用“/”+0ms
快速:路由器:层新“/”+0ms
快速:应用程序将“端口”设置为“3001”+0毫秒
正在执行(默认):选择1+1作为结果
已成功建立连接。
快递:路由器调度岗/登录+4s
快速:路由器查询:/login+2ms
express:router expressInit:/login+0ms
快速:路由器传真:/login+2ms
快速:路由器记录器:/login+0ms
快速:路由器jsonParser:/login+2ms
快速:路由器urlencodedParser:/login+28ms
快速:路由器cookieParser:/login+0ms
快速:路由器服务状态:/login+1ms
快速:路由器初始化:/login+0ms
执行(默认):从“用户”中选择“id”、“名字”、“姓氏”、“用户名”、“电子邮件”、“密码”、“创建数据”、“更新数据”作为“用户”,其中“用户”。“电子邮件”=“a”限制1;
用户找到了!
快速:路由器:/login+25ms
快速:路由器:/login+1ms
快速:查看需要“jade”+0毫秒
快速:查看查找“error.jade”+190ms
express:view stat“/home/zmigaddo/sc/views/error.jade”+0ms
express:view render“/home/zmigaddo/sc/views/error.jade”+1ms
POST/login 500 346.104毫秒-1910
我解决了这个问题。再次运行后,我收到错误错误:无法将用户序列化到会话中。接下来,我添加了以下代码来序列化和反序列化用户,并修复了这个问题
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
我没有看到过LocalStrategy接收req作为参数的例子,总是只有3个参数,类似这样:(用户名、密码、完成)试着像这个站点的例子那样做:DavidVicente是的,我也尝试过删除req参数,但没有效果。