护照反序列化用户未在帆中调用
Posted
技术标签:
【中文标题】护照反序列化用户未在帆中调用【英文标题】:passport deserializeUser not called in sails 【发布时间】:2015-12-22 06:50:25 【问题描述】:我正在使用 Sails 0.11 版并尝试使用 jwt 身份验证配置应用程序。
配置/passport.js
var passport = require('passport');
var jwt = require('express-jwt');
module.exports =
http:
customMiddleware: function(app)
console.log('express midleware for passport');
app.use(jwt( secret: sails.config.session.secret, credentialsRequired: false).unless(path: ['/login']));
app.use(passport.initialize());
app.use(passport.session());
;
服务/passport.js
/* other code */
passport.serializeUser(function(user, done)
console.log(user);
done(null, user.id);
);
passport.deserializeUser(function(id, done)
console.log(id);
findById(id, function(err, user)
if (err)
done(err);
else if (!user)
done(null, false);
else
done(null, user);
);
);
AuthController.js
module.exports =
login: function(req, res)
passport.authenticate('local', function(err, info, user)
if (err)
return res.send(err);
else if (!user)
return res.send(info);
else
var token = jwt.sign(user, sails.config.session.secret,
expiresInMinutes: 5 // expires in 5 minutes
);
res.json(
success: true,
message: 'Enjoy your token!',
token: token
);
)(req, res);
,
me: function(req, res)
res.send(req.user);
为什么我的 desesializedUser 函数从未被调用?我的代码有什么问题?
【问题讨论】:
【参考方案1】:你配置护照的策略吗?
护照doc中提到了以下内容。
在验证请求之前,必须配置应用程序使用的策略。
【讨论】:
以上是关于护照反序列化用户未在帆中调用的主要内容,如果未能解决你的问题,请参考以下文章