Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从重置密码链接(Express)获取参数_Node.js_Email_Express_Query String_Sendgrid - Fatal编程技术网

Node.js 从重置密码链接(Express)获取参数

Node.js 从重置密码链接(Express)获取参数,node.js,email,express,query-string,sendgrid,Node.js,Email,Express,Query String,Sendgrid,我正在为我网站的用户实施重置密码功能。一旦一个经过验证、定义良好的用户注册,就会生成一个唯一的令牌(特别是在这种情况下),保存在数据库中,并作为参数包含在发送给用户的“忘记密码”电子邮件中链接的查询字符串中。然后用户检查他们的电子邮件,点击链接,并将被重定向到一个视图,在那里他们可以重新定义自己的密码 我在这个过程中遇到的主要障碍是,当用户在电子邮件中单击链接时,从链接中获取唯一令牌作为参数。我引用并指定了路由(当用户在收件箱中单击该路由以转到视图重置密码时,该路由在电子邮件中被激活),并编写了

我正在为我网站的用户实施重置密码功能。一旦一个经过验证、定义良好的用户注册,就会生成一个唯一的令牌(特别是在这种情况下),保存在数据库中,并作为参数包含在发送给用户的“忘记密码”电子邮件中链接的查询字符串中。然后用户检查他们的电子邮件,点击链接,并将被重定向到一个视图,在那里他们可以重新定义自己的密码

我在这个过程中遇到的主要障碍是,当用户在电子邮件中单击链接时,从链接中获取唯一令牌作为参数。我引用并指定了路由(当用户在收件箱中单击该路由以转到视图重置密码时,该路由在电子邮件中被激活),并编写了以下路由来处理该路由:

usersRouter.route('/reset/passwordLoggedOut/:token') 
    .get(emails.resetPasswordForgot); 
使用随后的resetPasswordForget()函数(为便于查看而缩小):

当我希望它包含用户密码令牌时,Console.log(令牌)当前显示为null

还有一些背景信息,我正在使用SendGrid处理我所有的自动电子邮件,Mailinator作为用户测试电子邮件,下面是我在电子邮件链接上悬停时的路线。(我意识到图像很小,如果不放大几次,可能无法查看,但我希望包含尽可能多的URL)

请让我知道我需要做什么才能从电子邮件中的链接获取令牌参数。

您需要通过属性访问:

function resetPasswordForgot(req, res){
    const token = req.query.token;
    console.log(token);
    res.send(200);
}

req.query.token产生未定义的结果,并且req.query是空对象。进一步检查后,我认为a.)querystring没有正确传入,或者b.)SendGrid正在修改链接,以防止正确访问param。
function resetPasswordForgot(req, res){
    const token = req.query.token;
    console.log(token);
    res.send(200);
}