nodejs-如何安全地将令牌从http获取请求传递到html页面
node js - How to safely pass token from http get request to html page?
我正在实现我自己的自定义密码重置,它可以发送一封电子邮件,用户可以在其中进入一个页面重置密码。
到目前为止,我已经生成了一个唯一的令牌,它被放在http获取请求链接中,并通过电子邮件发送给用户。
当用户点击链接(例如mywebsite.com/verifypasswordreset?id=96rZyAWLTu
)时,
我有一条获得代币的快速路线:
//Verify Password Reset
app.get('/verifypasswordreset', function(req, res) {
Parse.Cloud.run('verifyPasswordReset', { token: req.param("id") }, {
success: function(user) {
res.sendFile(path.join(__dirname + '/website/resetpassword.html'));
},
error: function(error) {
res.sendFile(path.join(__dirname + '/website/404.html'));
}
});
});
然后,我运行一个Parse云代码函数,该函数验证令牌是否存在,如果存在,则通过发送包含重置密码表单的html进行响应。(resetpassword.html
)
在这一点上,resetpassword.html
页面的url中仍然嵌入了令牌(mywebsite.com/verifypasswordreset?id=96rZyAWLTu
),然而,一旦用户提交表单,它就会发布一个http帖子并发布新密码,将令牌留在链接中,因此我不知道哪个令牌与密码重置相关?
//Reset Password
app.post('/resetpassword', function(req, res) {
res.send('You sent the password "' + req.body.password + '".');
});
当用户提交表单以更改密码时,如何以某种方式从当前url(mywebsite.com/verifypasswordreset?id=96rZyAWLTu
)中获取令牌并将其包含在http post请求中,以便我的node-js应用程序能够读取它并知道哪个令牌与密码重置相关?
或者,他们是一个更好的&追踪代币的更安全方式?
*注意忽略我正在使用http我将在启动前购买SSL证书并使用https。
当您只是发送一个resetpassword.html页面时,我看不出验证令牌有什么意义。但是,当实际更新用户的密码时,必须验证令牌。因此,这里有一个稍微修改过的工作流程:
用户单击链接(例如mywebsite.com/passwordreset?id=96rZyAWLTu)
app.get('/passwordreset', function(req, res) {
res.sendFile(path.join(__dirname + '/website/resetpassword.html'));
});
您的resetpassword页面的URL仍然嵌入了令牌。现在,用户提交表单,它进行http发布并发布新密码。
app.post('/passwordreset', function(req, res) {
Parse.Cloud.run('verifyPasswordReset', { token: req.param("id") }, {
success: function(user) {
//update user's password here
res.send('You sent the password "' + req.body.password + '".');
},
error: function(error) {
res.sendFile(path.join(__dirname + '/website/error.html'));
}
});
- D3 Json请求获取XmlHttpRequest错误:访问控制允许原点不允许原点为null
- 找不到Angular+Ionic Post请求获取404
- 如何从 ajax 请求获取数据响应
- 在Sencha touch 2.0中使用Ajax请求获取cookie
- 在 Python 中使用请求获取页面但不使用源代码,为什么?如何获取源代码
- 从javascript Http请求获取Java List
- Django View 无法使用请求获取文件.来自 ajax 表单的文件提交
- GiantBomb API 请求获取 HTML 而不是 JSON,Nodejs 请求模块
- 使用 ajax 请求获取上一个和下一个对象
- 从AJAX请求获取javascript变量的数字时遇到问题
- JQuery请求获取超过10个RSS提要
- XEP-0133:管理员请求获取所有在线用户列表
- 通过javascript通过ajax请求获取页面的完整html源代码
- NodeJS/Angular编辑请求获取400错误
- 从NodeJS请求获取主机
- 从http请求获取包信息
- 使用请求获取API结果,并集成到Hubot响应中
- 通过jQuery ajax请求获取数据
- Fcbkcomplete用ajax请求获取数据
- Node.js请求获取一个VAST标签