Commit 7f8dde2b by 韦华德

民政单点登录:增加手机验证码,注册去掉邮箱

parent a0aef069
......@@ -75,7 +75,7 @@ public class User extends BaseEntity implements Serializable {
private String nickName;
@Email
@NotBlank
//@NotBlank
@ApiModelProperty(value = "邮箱")
private String email;
......
package com.zq.system.modules.system.domain.vo;
import com.zq.system.modules.system.domain.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SsoRegisterVo extends User {
@ApiModelProperty(value = "手机验证码")
private String phoneVerificationCode;
@ApiModelProperty(value = "手机验证码uuid")
private String uuId;
}
......@@ -7,6 +7,7 @@ import com.zq.common.vo.IdVo;
import com.zq.common.vo.ResultVo;
import com.zq.system.modules.system.domain.User;
import com.zq.system.modules.system.domain.vo.SsoLoginVo;
import com.zq.system.modules.system.domain.vo.SsoRegisterVo;
import com.zq.system.modules.system.service.AuthUserDto;
import com.zq.system.modules.system.service.SsoService;
import io.swagger.annotations.Api;
......@@ -59,11 +60,19 @@ public class SsoController {
@ApiOperation("注册单点登录用户")
@AnonymousPostMapping(value = "/register")
public ResultVo register(@Validated(User.Create.class) @RequestBody User resources) {
public ResultVo register( @RequestBody SsoRegisterVo resources) {
AssertUtils.hasText(resources.getPhoneVerificationCode(),"手机验证码未填写");
ssoService.register(resources);
return ResultVo.success("注册成功");
}
@ApiOperation("获取手机验证码")
@AnonymousGetMapping(value = "/getPhoneVerificationCode/{phoneNumber}")
public ResultVo getPhoneVerificationCode(@PathVariable("phoneNumber") String phoneNumber) {
return ResultVo.success(ssoService.getPhoneVerificationCode(phoneNumber));
}
@ApiOperation("用户绑定系统")
@PostMapping(value = "/bindSystem")
public ResultVo bindSystem(@RequestBody SsoLoginVo vo) {
......
......@@ -22,6 +22,7 @@ import com.zq.system.modules.system.domain.Job;
import com.zq.system.modules.system.domain.Role;
import com.zq.system.modules.system.domain.User;
import com.zq.system.modules.system.domain.vo.SsoLoginVo;
import com.zq.system.modules.system.domain.vo.SsoRegisterVo;
import com.zq.system.modules.system.entity.BindUserInfo;
import com.zq.system.modules.system.entity.SysInfo;
import com.zq.system.modules.system.repository.DeptRepository;
......@@ -29,9 +30,11 @@ import com.zq.system.modules.system.repository.JobRepository;
import com.zq.system.modules.system.repository.RoleRepository;
import com.zq.system.modules.system.repository.UserRepository;
import com.zq.system.modules.system.service.dto.UserDto;
import com.zq.system.utils.MobileSmsUtils;
import com.zq.system.utils.RsaUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.core.Authentication;
......@@ -67,16 +70,27 @@ public class SsoService {
private final AuthenticationManagerBuilder authenticationManagerBuilder;
private final TokenProvider tokenProvider;
public void register(User resources) {
public void register(SsoRegisterVo vo) {
String passwd = null;
try {
passwd = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, resources.getPassword());
passwd = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, vo.getPassword());
} catch (Exception e) {
e.printStackTrace();
}
AssertUtils.hasText(passwd, "密码解密失败");
String phoneVerificationCode=redisUtils.getStr(vo.getUuId());
// AssertUtils.hasText(phoneVerificationCode,"验证码已过期");
// AssertUtils.isTrue(vo.getPhoneVerificationCode().equals(phoneVerificationCode),"验证码错误");
User resources=new User();
resources.setPassword(passwordEncoder.encode(passwd));
resources.setDept(vo.getDept());
resources.setEnabled(vo.getEnabled());
resources.setGender(vo.getGender());
resources.setNickName(vo.getNickName());
resources.setPhone(vo.getPhone());
resources.setUsername(vo.getUsername());
List<Role> roleList = roleRepository.findAllById(Collections.singletonList(8L));
resources.setRoles(new HashSet<>(roleList));
......@@ -87,6 +101,8 @@ public class SsoService {
deptRepository.findById(8L).ifPresent(resources::setDept);
userService.create(resources);
redisUtils.deleteStr(vo.getUuId());
}
public List<BindUserInfo> getBindSysList() {
......@@ -228,4 +244,13 @@ public class SsoService {
data.put("username", userDto.getUsername());
return data;
}
public String getPhoneVerificationCode(String phoneNumber) {
String code= String.valueOf((int)((Math.random()*9+1)*100000));
MobileSmsUtils.sendMsg(phoneNumber,"【民政统一登录平台】验证码:"+code+"(有效期为3分钟),请勿泄露给他人,如非本人操作,请忽略此信息。");
String uuid = properties.getCodeKey() + IdUtil.simpleUUID();
//3分钟
redisUtils.setStr(uuid,code,180000);
return uuid;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment