在 UpdateUserCommand 命令的处理器里面,更处理一下更新用户密码的功能。先判断一下 update.password,检查 update 里面的 password 是否有值,如果有就说明要更新用户的密码。
更新之前要先检查一下更新的密码是否跟当前密码相同,声明一个 isSamePassowrd,等于 await,用一下 bcrypt.compare,第一个参数是 update.password,第二个项目是 user.password 。
下面判断一下,如果 isSamePassword,如果密码相同,throw 一个 BadRequestException,要更新的密码与当前密码相同。
没有问题可以设置一下 user 实体的 password 属性的值,等于 await ,用一下 bcrypt.hash ,处理一下 update.password,第二个参数是 12 。
测试
在 Http 客户端测试一下更新密码的功能,在更新用户请求的主体数据里面,这个 update 属性里面要添加一个 password 属性,它的值就是要更新的密码,比如 123123 。发送一下请求,提示要更新的密码跟当前密码相同。
修改一下要更新的密码,再发送一下请求,提示成功更新了用户。再修改一下这个密码,然后发送一下请求,这回提示密码不对,因为刚才我们更新了这个用户的密码,所以要修改一下这个 validate 里面的 password 属性的值,改成刚才修改之后的密码,再发送一下请求。又会提示成功更新了用户。