实施护照记住我的策略

时间:2019-12-02 13:57:48

标签: javascript node.js authentication passport-local remember-me

我正在实施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);
  });
}

0 个答案:

没有答案