gpt4 book ai didi

node.js - Passport 反序列化用户未在 sails 中调用

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:47 25 4
gpt4 key购买 nike

我正在使用 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 函数从未被调用?我的代码有什么问题?

最佳答案

您是否配置了 Passport 策略?

Passport 上doc ,下面提到。

Before authenticating requests, the strategy (or strategies) used by an application must be configured.

关于node.js - Passport 反序列化用户未在 sails 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32765219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com