NodeJS无法从req.params.token获取令牌值 [英] NodeJS not able to get token value from req.params.token

查看:70
本文介绍了NodeJS无法从req.params.token获取令牌值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

app.post('/reset/:token', function(req, res) {
  async.waterfall([
    function(done) {
      User.findOne({ 'local.resetPasswordToken' : req.params.token, 'local.resetPasswordExpires' : { $gt: Date.now() } }, function(err, user) {
        if (!user) {
          req.flash('resetMessage', req.params.token);
          return res.redirect('back');
        }
  ], function(err) {
    res.redirect('/');
  });
}); 

app.get('/reset/:token', function(req, res) {
    User.findOne({ 'local.resetPasswordToken': req.params.token, 'local.resetPasswordExpires' : { $gt: Date.now() } }, function(err, user) {
        if (!user) {
            req.flash('forgotMessage', req.params.token );
        return res.redirect('/forgot');
        }
        res.render('reset.ejs', { user: req.user, message: req.flash('resetMessage') });
    });
});



<!--Reset.ejs page ResetPassword FORM -->
<form action="/reset/:token" method="post">
    <div class="form-group">
        <label>New Password</label>
        <input type="text" class="form-control" name="newpassword">
    </div>
    <div class="form-group">
        <label>Confirm Password</label>
        <input type="text" class="form-control" name="confirmpassword">
    </div>
    <button type="submit" class="btn btn-warning btn-lg">Reset</button>
</form>

在单击$ b之后,我可以使用带有req.params.token的令牌来获取发布信息$ b http:// localhost:8080 / reset / fed831abf73150c96f6a3e392b5cbdcaccdeb9bd

I able to get the token with req.params.token for the "post" after clicking http://localhost:8080/reset/fed831abf73150c96f6a3e392b5cbdcaccdeb9bd

之后,当我通过reset.ejs提交获取时,我无法使用req.params.token检索任何令牌值。

Later when I submit through the reset.ejs for the "get" I couldn't retrieved any token value with req.params.token.

任何解决办法?

推荐答案

您需要使用 method ='get' action ='reset /'+ tokenvar 。另外,您的异步瀑布不会调用done(),因此如果用户存在

you need another form with method='get' and action='reset/' + tokenvar. Also your async waterfall does not call done() so will not call the redirect if the user exists

这篇关于NodeJS无法从req.params.token获取令牌值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆