• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

从零到企业级SSM电商项目实战教程(二十)忘记密码中的重置密码功能开发

项目实战 Geekerstar 10个月前 (06-22) 333次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

UserController.java

/*
 * @Description: 忘记密码中的重置密码
 *
 * @auther: Geekerstar(jikewenku.com)
 * @date: 2018/6/22 15:30
 * @param: 
 * @return: 
 */

@RequestMapping(value = "forget_reset_password.do",method = RequestMethod.GET)
@ResponseBody
public ServerResponse<String> forgetRestPassword(String username,String passowrdNew,String forgetToken){
    return iUserService.forgetResetPassword(username,passowrdNew,forgetToken);
}

IUserService.java

ServerResponse<String> forgetResetPassword(String username,String passwordNew,String forgetToken);

UserServiceImpl.java

public ServerResponse<String> forgetResetPassword(String username,String passwordNew,String forgetToken){
    if(StringUtils.isBlank(forgetToken)){
        return ServerResponse.createByErrorMessgae("参数错误,token需要传递");
    }
    ServerResponse validResponse = this.checkValid(username,Const.USERNAME);
    if(validResponse.isSuccess()){
        //用户不存在
        return ServerResponse.createByErrorMessgae("用户不存在");
    }
    String token = TokenCache.getKey(TokenCache.TOKEN_PREFIX+username);
    if(StringUtils.isBlank(token)){
        return ServerResponse.createByErrorMessgae("token无效或者过期");
    }
    if(StringUtils.equals(forgetToken,token)){
        String md5Password = MD5Util.MD5EncodeUtf8(passwordNew);
        int rowCount = userMapper.updatePasswordByUsername(username,passwordNew);

        if(rowCount > 0){
            return ServerResponse.createBySuccessMessage("修改密码成功");
        }
    }else{
        return ServerResponse.createByErrorMessgae("token错误,请重新获取重置密码的token");
    }
    return ServerResponse.createByErrorMessgae("修改密码失败");

}

UserMapper.java

int updatePasswordByUsername(@Param("username") String username,@Param("passwordNew") String passwordNew)

UserMapper.xml

<update id="updatePasswordByUsername" parameterType="map">
  update mmall_user
  set password = #{passwordNew},update_time = now()
  UPDATE username = #{username}
</update>

TockenCache.java

public static final String TOKEN_PREFIX = "token_";

喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00