1

我正在使用 passport.js 进行身份验证。

我有一个想解决的问题:

每当用户想要reset他的时,我都会向他password发送一封电子邮件。password reset linktoken id

reset他可以password在点击那个链接后,但在重置密码后,

我希望用户被重定向到dashboard page而不是log in page.

我尝试使用 passport.js 找到解决方案,但没有得到任何运气。

有人可以给我任何想法来解决这个问题吗?

谢谢你

4

1 回答 1

2

当用户重置密码时,您需要代表用户对用户进行身份验证。

代码看起来像这样

app.post('/resetpassword', function(req, res, next) {
  /*
       code to reset the password
  */

  // append username and new password to req.body
  // assuming passport still uses username and password as field indicator

  req.body.username= "user_name";
  req.body.password= "user_new_password";

  passport.authenticate('local', function(err, user, info) {
      if (err) { return next(err); }
      if (!user) { return res.sendStatus(401); }

      // it is your responsibility to establish the session 
      req.logIn(user, function(err) {
         if (err) { return next(err); }

         return res.rediect("to_users_dashboard_path");
      });
 })(req, res, next);
});

注意:在使用自定义回调时,建立会话是应用程序的责任,请参阅自定义回调

于 2015-03-27T12:49:54.370 回答