如何将passport-local与成功认证返回JWT令牌相结合?
我想使用node-jwt-simple,但查看passport.js后,我不确定该如何进行操作。
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
在调用 done() 时是否可能返回令牌? 类似于这样的代码(仅为伪代码)
是否可能在调用 done() 时同时返回一个令牌?就像这个例子中的伪代码:
if(User.validCredentials(username, password)) {
var token = jwt.encode({username: username}, tokenSecret);
done(null, {token : token}); //is this possible?
}
如果不行,我该如何返回令牌?