Passport-imap回调?

时间:2014-12-30 09:51:55

标签: passport.js

我是node.js的新手,我正在尝试使用passport-imap为一个简单的测试应用程序实现imap身份验证。

我按照https://github.com/nettantra/passport-imap中的说明配置了我的ImapStrategy和登录功能,但是当我登录到我的应用程序时,我收到消息“生成用户需要成功回退!”。这是我的代码:

passport.use(new ImapStrategy({host: 'my-imap-server', port : 993, tls : true},     function(req,res){
    console.log('AUTH HERE ' ); 
    return done(null, user);
}));

app.post('/login', passport.authenticate('imap', {
    failureRedirect : '/login', // redirect back to the signup page if there is an error
    failureFlash : true // allow flash messages
}),function(req, res) {
    console.log('OK AUTHENTICATED');
    res.redirect('/app');
  });

添加“successRedirect”参数没有帮助......有人能指出我正确的方向吗?

我添加了验证回调,但无法理解它需要什么样的参数。 我尝试过类似于localstrategy的东西,但我的“用户名”参数不是我所期望的(用户登录),它是其他一些对象。此外,我不确定这是要走的路:我实际上不想保留本地用户列表,我只想接受任何可以对我的imap服务器进行身份验证的用户。

另外我不明白我是否应该像localstrategy一样使用“nextTick”:如果我这样做,我的验证就会被绕过,而且我总是会回到登录页面。

passport.use(new ImapStrategy({host: 'my-imap-server', port : 993, tls : true, 
        success_callback: function(username, password, done){
      //      process.nextTick(function () {

      // Find the user by username.  If there is no user with the given
      // username, or the password is not correct, set the user to `false` to
      // indicate failure and set a flash message.  Otherwise, return the
      // authenticated `user`.
      findByUsername(username, function(err, user) {
        if (err) { return done(err); }
        if (!user) { return done(null, false, { message: 'Unknown user ' + username }); }
        if (user.password != password) { return done(null, false, { message: 'Invalid password' }); }
        return done(null, user);
      })
    //});
        } }
));

0 个答案:

没有答案