Node.js 在SAIL中未调用passport反序列化用户
我正在使用Sails版本0.11,并尝试使用jwt身份验证配置应用程序 config/passport.jsNode.js 在SAIL中未调用passport反序列化用户,node.js,express,sails.js,passport.js,express-jwt,Node.js,Express,Sails.js,Passport.js,Express Jwt,我正在使用Sails版本0.11,并尝试使用jwt身份验证配置应用程序 config/passport.js var passport = require('passport'); var jwt = require('express-jwt'); module.exports = { http: { customMiddleware: function(app) { console.log('express midleware for passport')
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());
}
}
};
/* 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);
});
});
服务/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());
}
}
};
/* 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函数?我的代码中有什么错误?是否配置passport的策略 护照中提到了以下内容 在验证请求之前,必须配置应用程序使用的策略