如何結合passport-local在成功認證時返回JWT令牌?passport-local with node-jwt-simple
我想用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()時是否可以返回標記? 像這樣...(只是僞代碼)
if(User.validCredentials(username, password)) {
var token = jwt.encode({username: username}, tokenSecret);
done(null, {token : token}); //is this possible?
}
如果沒有,我怎麼可以返回令牌?
酷,感謝張貼你如何解決它:) – robertklep
Passport的[BasicStrategy](http://passportjs.org/guide/basic-digest/)或DigestStrategy是另外兩個選項。但是,基本策略和本地策略似乎並沒有太大區別,因爲這兩個策略都不需要會話 - 只需要本地請求重定向URL(使其略低於API)。 – funseiki
嘿@cgiacomi你能舉一個檢查令牌的路線的例子嗎? –