猿问
下载APP

bcrypt-nodejs密码加密问题

再使用MongoDB存储数据的时候,假设用户注册的时候,有用户名,密码,邮箱,手机号等等信息,这个数据是保存在一个user的表中,用户在注册的时候,密码肯定是被加密后保存在数据库的,但是当用户在在个人中心修改自己信息的时候,比如修改了手机号,这个时候修改之后还是需要保存在数据库的,再次保存的时候,之前的密码又会被加密,这个时候就会导致用户在登录的时候,密码匹配不成功,这种情况如何处理呢?

相关的代码如下:

http://img.mukewang.com/5951b9530001655106100541.jpg

Jone_Chen
浏览 2510回答 5
5回答

Jone_Chen

已经解决了,对保存的时候做判断

慕粉4391827

恩,在保存的时候把password给过滤掉,执行save的时候检测如果没有password字段就自动过滤掉生成加密盐和加密的操作

__innocence

修改了手机号和密码有何关系?就算手机号是作为加密算法的“盐”,修改手机号的时候,你需要更新一下密码,也就是,再次将密码通过加盐的加密函数加密存进数据库,这样,新的密码就会把旧的密码覆盖掉。

李晓健

你把加密放到这个保存之前就好了,不要放到这个保存方法里面。如果是创建用户,他肯定会传密码字段给你,这时你就加密,如果他是修改,修改什么就传什么字段给你,如果他传给你的字段里没有密码,密码就用原来的值,不需要处理。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答