Javascript passport.js回调中总是出现错误
我正在尝试创建一个具有、Sequelize和Node的松弛登录 但我总是在返回时出错。 以下是我的规则:Javascript passport.js回调中总是出现错误,javascript,node.js,passport.js,sequelize.js,Javascript,Node.js,Passport.js,Sequelize.js,我正在尝试创建一个具有、Sequelize和Node的松弛登录 但我总是在返回时出错。 以下是我的规则: app.get('/auth/slack', passport.authorize('slack')); app.get('/auth/slack/callback', passport.authorize('slack', { failureRedirect: '/login' }), function(req, res) {
app.get('/auth/slack',
passport.authorize('slack'));
app.get('/auth/slack/callback',
passport.authorize('slack', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/dashboard');
}
);
这是我的passport.js:
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
console.log("abc deserializeUser");
User.findById(id).then(function(user){
done(null, user);
}).catch(function(e){
done(e, false);
});
});
passport.use('slack', new SlackStrategy({
clientID: process.env.SLACK_ID,
clientSecret: process.env.SLACK_SECRET,
callbackURL: process.env.SLACK_REDIRECT,
scope: "incoming-webhook users:read"
},
function(req, accessToken, refreshToken, profile, done) {
var values = {
where: { slack_id: profile.id },
defaults: {slack_id: profile.id, name: profile.displayName}
};
User.findOrCreate(values)
.spread(function(user, created) {
return done(user);
});
}
));
我总是得到这个作为回报
[object SequelizeInstance:User]
如何修复此问题?
done
回调接收第一个参数作为错误,第二个作为用户,第三个作为闪存消息。所以您应该将user作为第二个参数传递
User.findOrCreate(values)
.spread(function(user, created) {
return done(null, user);
}).catch(function(error){
return done(error);
});
done
callback接收第一个参数作为错误,第二个作为用户,第三个作为flash消息。所以您应该将user作为第二个参数传递
User.findOrCreate(values)
.spread(function(user, created) {
return done(null, user);
}).catch(function(error){
return done(error);
});