【发布时间】:2013-07-16 09:05:54
【问题描述】:
我有一个简单的忘记密码功能,当用户请求更改密码时,他会收到一封带有令牌的电子邮件,点击它时他的电子邮件将被重定向到一个页面,该页面将接受他的新密码。
我所做的是,当我单击电子邮件中的链接时,服务器获取请求,并且一个函数从链接中取出数据用数据呈现页面(使用 res.render),然后它应该重定向到呈现的页面.
我面临的问题是,当我点击链接时,我正在获取数据和页面,但我不能让 res.redirect() 工作。
我的链接是这样的
http://localhost:3000/api/resetpassword?_csrf=ab8aa6a41567f817330e3e0a214725f8b2f88b487d5bef16f162e033c6a63dc41933511ddb79cb44ca049f472b3e0c593dbbaf&email=dummyEmail%2540dumyurl.ca
然后我使用 app.get() 在服务器上获取请求。
app.get('/api/resetpassword', Admin.resetPasswordPage);
我的渲染和重定向功能是这样的;
resetPasswordPage: function (req, res, next) {
req.query.email = decodeURIComponent(req.query.email) ;
res.render('resetPassword', {
Email: req.query.email,
Csrf : req.query._csrf,
}, function (err, html) {
console.log("TESTING HTML ", html);
if (!err)
res.redirect("/resetPassword");
});
}
渲染成功,因为我在 html 参数中获得了页面的完整 HTML,但问题是如何重定向到该页面。该页面是在 EJS 中创建的,并且在 views 文件夹中。
【问题讨论】:
-
所以当我从 URL 中删除 /api 时,它会将我正确重定向到页面,但网页不是加载器,浏览器中出现错误
This web page has a redirect loop -
嗨 Suleman,我也在构建一个像你一样的忘记密码功能。你有 git 我可以参考吗?
标签: javascript node.js redirect express ejs