【发布时间】:2017-07-07 13:30:29
【问题描述】:
我正在为我网站的用户实施重置密码功能。一旦经过验证、定义明确的用户注册,就会生成一个唯一令牌(特别是针对这种情况),保存在数据库中,并作为参数包含在发送给用户的“忘记密码”电子邮件中的链接的查询字符串中.然后,用户检查他们的电子邮件,单击链接,然后将被重定向到可以重新定义密码的视图。
我在此过程中处理的主要障碍是当用户单击电子邮件中的链接时,从链接中获取唯一令牌作为参数。我引用了official Express documentation 并指定了路由(当用户在收件箱中单击它以转到重置密码的视图时,该路由在电子邮件中被激活),并编写了以下路由来处理它:
usersRouter.route('/reset/passwordLoggedOut/:token')
.get(emails.resetPasswordForgot);
使用随后的 resetPasswordForgot() 函数(为方便查看而缩小):
function resetPasswordForgot(req, res){
const token = req.params.token;
console.log(token);
res.send(200);
}
当我希望它包含用户密码令牌时,Console.log(token) 当前显示为 null。
更多背景信息,我将 SendGrid 用于我的所有自动电子邮件,Mailinator 用于以用户身份测试电子邮件,以下是当我将鼠标悬停在电子邮件中的链接上时路由的样子。 (我意识到图像很小,如果不放大几次可能无法查看,但我想包含尽可能多的 URL)
请让我知道我需要做什么才能从电子邮件中的链接中获取令牌参数。
【问题讨论】:
标签: node.js email express query-string sendgrid