Browse Source

添加使用手机号验证码个人注册接口

wangmh 7 years ago
parent
commit
9b07068e6a

+ 42 - 1
sso-server/src/main/java/com/uas/sso/controller/PersonalRegisterController.java

@@ -3,7 +3,7 @@ package com.uas.sso.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.uas.sso.SSOHelper;
 import com.uas.sso.SSOHelper;
 import com.uas.sso.SSOToken;
 import com.uas.sso.SSOToken;
-import com.uas.sso.foreign.bihe.entity.BiHeInfo;
+import com.uas.sso.entity.register.SmsPersonalRegister;
 import com.uas.sso.core.Step;
 import com.uas.sso.core.Step;
 import com.uas.sso.core.Type;
 import com.uas.sso.core.Type;
 import com.uas.sso.core.PasswordStrength;
 import com.uas.sso.core.PasswordStrength;
@@ -19,6 +19,7 @@ import com.uas.sso.service.PersonalAccountService;
 import com.uas.sso.service.UserService;
 import com.uas.sso.service.UserService;
 import com.uas.sso.util.CaptchaUtil;
 import com.uas.sso.util.CaptchaUtil;
 import com.uas.sso.util.IpUtils;
 import com.uas.sso.util.IpUtils;
+import com.uas.sso.util.MessageUtils;
 import com.uas.sso.util.PasswordLevelUtils;
 import com.uas.sso.util.PasswordLevelUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -26,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -34,6 +36,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLDecoder;
 import java.util.List;
 import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
+import java.util.Random;
 
 
 /**
 /**
  * 个人注册controller
  * 个人注册controller
@@ -164,6 +167,44 @@ public class PersonalRegisterController extends BaseController {
         return success(new ModelMap("userUU", user.getUserUU()));
         return success(new ModelMap("userUU", user.getUserUU()));
     }
     }
 
 
+    @PostMapping("/sms")
+    public ModelMap register(SmsPersonalRegister personalRegister) throws UnsupportedEncodingException {
+        User user = new User();
+        String mobile = personalRegister.getMobile();
+        String password = getPassword(mobile.substring(mobile.length() - 3, mobile.length()));
+        user.setVipName(mobile);
+        user.setMobile(mobile);
+        user.setPassword(password);
+        ModelMap response = register(user, personalRegister.getAppId(), personalRegister.getCode(), personalRegister.getToken(),
+                personalRegister.getBaseUrl(), personalRegister.getT(), personalRegister.getReturnUrl());
+        MessageUtils.sendSms("templateForSendSmsAfterRegisterSuccess", mobile, password);
+        return response;
+    }
+
+    /**
+     * 获取密码
+     * @param suffix 密码后缀
+     * @return
+     */
+    private String getPassword(String suffix) {
+        Random random = new Random();
+        String val = "";
+        // 生成4个字母
+        for (int i=0; i<3; i++) {
+            int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
+            val = val + (char)(choice + random.nextInt(26));
+        }
+
+        // 3个数字
+        String number = random.nextInt(999) + 1000 + "";
+        number = number.substring(number.length() - 3, number.length());
+        val = val + number;
+
+        // 后缀
+        val = val + suffix;
+        return val;
+    }
+
     /**
     /**
      * 获取验证码
      * 获取验证码
      *
      *

+ 71 - 0
sso-server/src/main/java/com/uas/sso/entity/register/BaseRegisterLogin.java

@@ -0,0 +1,71 @@
+package com.uas.sso.entity.register;
+
+import com.uas.sso.AccountConfig;
+import com.uas.sso.core.Const;
+import org.springframework.util.StringUtils;
+
+/**
+ * @author wangmh
+ * @create 2018-08-09 13:47
+ * @desc 注册实体基类
+ **/
+public abstract class BaseRegisterLogin {
+
+    /**
+     * 应用id(默认sso)
+     */
+    private String appId = AccountConfig.ACCOUNT_CENTER;
+
+    /**
+     * 登录后跳转地址(默认优软云)
+     */
+    private String returnUrl = Const.HOME_PAGE;
+
+    /**
+     * 基本登录接口
+     */
+    private String baseUrl;
+
+    /**
+     * 第三方登录注册需绑定的信息token
+     */
+    private String t;
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        if (StringUtils.isEmpty(appId)) {
+            appId = AccountConfig.ACCOUNT_CENTER;
+        }
+        this.appId = appId;
+    }
+
+    public String getReturnUrl() {
+        return returnUrl;
+    }
+
+    public void setReturnUrl(String returnUrl) {
+        if (StringUtils.isEmpty(appId)) {
+            appId = Const.HOME_PAGE;
+        }
+        this.returnUrl = returnUrl;
+    }
+
+    public String getBaseUrl() {
+        return baseUrl;
+    }
+
+    public void setBaseUrl(String baseUrl) {
+        this.baseUrl = baseUrl;
+    }
+
+    public String getT() {
+        return t;
+    }
+
+    public void setT(String t) {
+        this.t = t;
+    }
+}

+ 49 - 0
sso-server/src/main/java/com/uas/sso/entity/register/SmsPersonalRegister.java

@@ -0,0 +1,49 @@
+package com.uas.sso.entity.register;
+
+/**
+ * 通过短信验证注册手机号
+ *
+ * @author wangmh
+ * @create 2018-10-29 13:49
+ **/
+public class SmsPersonalRegister extends BaseRegisterLogin {
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 验证码
+     */
+    private String code;
+
+    /**
+     * 验证码token,用于校验验证码是否正确
+     */
+    private String token;
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+}