我需要用户在编辑某些信息之前确认他们当前的密码。将其与会话身份验证信息进行比较应该是最好的方法,但当前密码不会存储在身份验证会话中。我能想到解决这个问题的唯一方法是通过id找到用户并检索他们当前的密码进行比较,但我认为查询过于昂贵。还有更好的方法吗?
答案 0 :(得分:3)
首先,我不打算以你想要的方式回答这个问题,相反,如果你要进行编辑,删除等操作,我会帮助你提升升级用户“角色”或“权力”的正确标准。 。等。等。
您不应该使用会话来存储密码。 (永远,永远,永远!)
在进行用户查找,密码存储,登录,有什么问题时,对数据库进行查询 - 这并不像你说的那样“昂贵”。我有一个超过2000(这是一个相对较小,非常小......)行的数据库,它正在处理,甚至没有出汗!
不要使用密码断开的密码函数,如MD5,SHA [1,2]。这些功能并非专为密码存储而设计。而是使用特定Bcrypt的crypt函数,它使用Blowfish密码。这是为了正确存储密码。