我正在实施Passport的“记住我”策略,有些困惑。
具体地说,我对Token对象及其方法感到困惑。我在任何地方都看不到这些定义。我应该为它们创建集合,架构和方法,还是缺少某些东西?
This stackoverflow post使我需要定义一个令牌模式。
在我相处得太远之前问。谢谢!
在护照website上-代码如下:
passport.use(new RememberMeStrategy(
function(token, done) {
Token.consume(token, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
return done(null, user);
});
},
function(user, done) {
var token = utils.generateToken(64);
Token.save(token, { userId: user.id }, function(err) {
if (err) { return done(err); }
return done(null, token);
});
}
));
On the official [example][2] it looks like this:
passport.use(new RememberMeStrategy(
function(token, done) {
consumeRememberMeToken(token, function(err, uid) {
if (err) { return done(err); }
if (!uid) { return done(null, false); }
findById(uid, function(err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
return done(null, user);
});
});
},
issueToken
));
function issueToken(user, done) {
var token = utils.randomString(64);
saveRememberMeToken(token, user.id, function(err) {
if (err) { return done(err); }
return done(null, token);
});
}