我正在为我的网站用户实施重置密码功能。一旦经过验证,定义明确的用户注册,就会生成一个唯一的令牌(特别是针对这种情况),保存在数据库中,并作为参数包含在“忘记密码”电子邮件中包含的链接的查询字符串中给用户。然后,用户检查他们的电子邮件,点击该链接,并将被重定向到他们可以重新定义其密码的视图。
我在此过程中处理的主要障碍是当用户点击其电子邮件中的该链接时,从链接获取唯一标记作为参数。我引用了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(令牌)当前显示为null。
更多背景信息,我正在使用SendGrid来处理所有自动电子邮件,Mailinator用于测试用户的电子邮件,以及当我将鼠标悬停在电子邮件中的链接上时的路线。 (我意识到图像很小,如果没有放大几次就不可能查看,但我希望尽可能多地包含URL)
请让我知道我需要做些什么来从电子邮件中的链接获取令牌参数。
答案 0 :(得分:0)
您需要query属性访问:
function resetPasswordForgot(req, res){
const token = req.query.token;
console.log(token);
res.send(200);
}