node.js - node - passport serializeuser



新用戶註冊後立即進行Passport身份驗證 (1)

在閱讀了關於req.login之後,我提出了這個解決方案:

app.post('/register', function(req, res) {
  // attach POST to user schema
  var user = new User({ email: req.body.email, password: req.body.password, name: req.body.name });
  // save in Mongo
  user.save(function(err) {
    if(err) {
      console.log(err);
    } else {
      console.log('user: ' + user.email + " saved.");
      req.login(user, function(err) {
        if (err) {
          console.log(err);
        }
        return res.redirect('/dashboard');
      });
    }
  });
});

我想清理一下,並認為err部分可以更強大,但這是一個功能正常的解決方案。 請注意,有人實現這一點,他們應該知道,它是適合使用護照本地策略與電子郵件,而不是用戶名。

我正在嘗試驗證並在/register表單上提交POST後立即登錄用戶。 理想情況下,我希望用戶能夠註冊,然後立即重定向到儀表板,而無需再次輸入憑據。

我的服務器正在使用Passport 0.1.17,本地策略配置為使用電子郵件地址和密碼登錄。 目前的代碼是:

app.post('/register', function(req, res) {

  // attach POST to new User variable
  var registerUser = new User({ email: req.body.email, password: req.body.password, name: req.body.name });

  // save registerUser Mongo
  registerUser.save(function(err) {
    if(err) {
      console.log(err);
    } else {
      console.log('registerUser: ' + registerUser.email + " saved.");
    }
  });

  // here is where I am trying to authenticate and then redirect
  passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
  res.redirect('/dashboard');
  });

我將如何重構此代碼來保存新用戶,然後進行身份驗證,最後重定向到儀表板?

提前致謝!