因此,我有一个应用程序,用户可以登录与Twitter,谷歌和本地。(我使用的是passportjs)
如果用户使用Twitter或google登录,我不想显示诸如更改电子邮件密码等选项。
为了在把手中解决这个问题,我检查Twitter Id或google Id是否存在,如果存在,我隐藏更改电子邮件和密码的按钮,而不是显示一条消息,说明他们不能更改电子邮件。
现在的问题是,如果用户知道密码更改页面的路径(这并不难弄清楚),他们仍然可以访问更改密码页面。如果他们试图“更改”他们的密码,他们会得到一个500的响应。
这是一种处理这种特定情况的坏方法吗?这是否带来了我没有意识到的其他风险?
注意:这是一个expressjs应用程序,带有把手、模板引擎和passportjs。
谢谢。
发布于 2020-09-15 16:07:05
要实现您正在寻找的内容,最好的方法是实现一些中间件,以防止未经授权的用户首先上传内容。
然后,您可以从控制器抛出错误,以防您的中间件发生某种泄漏。
尝试类似(伪代码)的代码:
(req, res, next)=>{
if ("User is authenticated"){
next()
}
res.redirect("Login page")
}
https://stackoverflow.com/questions/63893083
复制相似问题