|
|
@@ -0,0 +1,83 @@
|
|
|
+package com.uas.sso.uu.controller;
|
|
|
+
|
|
|
+import com.uas.sso.controller.BaseController;
|
|
|
+import com.uas.sso.core.PasswordStrength;
|
|
|
+import com.uas.sso.entity.User;
|
|
|
+import com.uas.sso.service.UserService;
|
|
|
+import com.uas.sso.util.PasswordLevelUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.ui.ModelMap;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author wangmh
|
|
|
+ * @create 2018-05-02 13:43
|
|
|
+ * @desc im修改密码接口
|
|
|
+ **/
|
|
|
+@RestController
|
|
|
+@RequestMapping("/im/resetPwd")
|
|
|
+public class ImResetPasswordController extends BaseController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取验证码
|
|
|
+ * @param mobile 用户手机号
|
|
|
+ * @return token
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/checkCode", method = RequestMethod.GET)
|
|
|
+ public ModelMap checkCode(String mobile) {
|
|
|
+ String token = getMobileToken(mobile);
|
|
|
+ return success(new ModelMap("token", token));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验验证码
|
|
|
+ * @param token 获取验证码返回的token
|
|
|
+ * @param mobile 获取验证码的手机号
|
|
|
+ * @param code 用户输入的验证码
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/checkCode", method = RequestMethod.POST)
|
|
|
+ public ModelMap checkCode(String token, String mobile, String code) {
|
|
|
+ checkMobileCode(token, mobile, code);
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重置密码
|
|
|
+ * @param mobile 获取验证码的手机号
|
|
|
+ * @param token 获取验证码返回的token
|
|
|
+ * @param code 用户输入的验证码
|
|
|
+ * @param password 用户新密码,未加密
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(method = RequestMethod.POST)
|
|
|
+ public ModelMap resetPassword(String mobile, String token, String code, String password) {
|
|
|
+ // 校验验证码
|
|
|
+ checkMobileCode(token, mobile, code);
|
|
|
+
|
|
|
+ // 判断手机号是否注册
|
|
|
+ User user = userService.findByMobile(mobile);
|
|
|
+ if (user == null) {
|
|
|
+ return error("未找到用户");
|
|
|
+ }
|
|
|
+
|
|
|
+ PasswordStrength strength = PasswordLevelUtils.checkPasswordLevel(password);
|
|
|
+ if (PasswordStrength.WEAK.getValue() == strength.getValue()) {
|
|
|
+ return error("密码须为8-20字符的英文、数字混合");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改密码
|
|
|
+ userService.updatePassword(user.getUserUU(), password);
|
|
|
+
|
|
|
+ // 删除token
|
|
|
+ tokenService.delete(token);
|
|
|
+
|
|
|
+ // 返回成功
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+}
|