用户登录新增邮箱登录

master
袁子龙 2024-08-21 22:26:22 +08:00
parent 12638f2f6d
commit 6c8e02a17e
8 changed files with 53 additions and 5 deletions

View File

@ -31,6 +31,7 @@ public class TokenController {
@PostMapping("login") @PostMapping("login")
public Result<?> login (@RequestBody LoginBody form) { public Result<?> login (@RequestBody LoginBody form) {
// 用户登录 // 用户登录
form.setEmail(form.getUsername()+"@qq.com");
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
// 获取登录token // 获取登录token
return Result.success(tokenService.createToken(userInfo)); return Result.success(tokenService.createToken(userInfo));

View File

@ -16,6 +16,19 @@ public class LoginBody {
*/ */
private String password; private String password;
/**
*
*/
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername () { public String getUsername () {
return username; return username;
} }

View File

@ -83,10 +83,14 @@ public class SysLoginService {
Result<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); Result<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); if (username.contains("@")){
throw new ServiceException("登录用户:" + username + " 不存在"); recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录邮箱不存在");
throw new ServiceException("登录邮箱:" + username + " 不存在");
}else {
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
throw new ServiceException("登录用户:" + username + " 不存在");
}
} }
if (Result.FAIL == userResult.getCode()) { if (Result.FAIL == userResult.getCode()) {
throw new ServiceException(userResult.getMsg()); throw new ServiceException(userResult.getMsg());
} }
@ -101,8 +105,15 @@ public class SysLoginService {
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员"); recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
throw new ServiceException("对不起,您的账号:" + username + " 已停用"); throw new ServiceException("对不起,您的账号:" + username + " 已停用");
} }
if (username.contains("@")){
user.setEmail(null);
}
passwordService.validate(user, password); passwordService.validate(user, password);
recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功"); if (username.contains("@")){
recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "邮箱登录成功");
}else {
recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "账号登录成功");
}
return userInfo; return userInfo;
} }

View File

@ -58,7 +58,12 @@ public class SysPasswordService {
retryCount = retryCount + 1; retryCount = retryCount + 1;
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount)); recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount));
redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES); redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
throw new ServiceException("用户不存在/密码错误");
if (user.getEmail()==null){
throw new ServiceException("邮箱不存在/密码错误");
}else {
throw new ServiceException("用户不存在/密码错误");
}
} else { } else {
clearLoginRecordCache(username); clearLoginRecordCache(username);
} }

View File

@ -9,6 +9,8 @@ import com.muyu.common.system.domain.LoginUser;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* *
* *
@ -16,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
*/ */
@FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class) @FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class)
public interface RemoteUserService { public interface RemoteUserService {
@PostMapping("/user/UserList")
public Result<List<SysUser>>userList(@RequestBody SysUser sysUser);
/** /**
* *
* *

View File

@ -9,6 +9,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
/** /**
* *
* *
@ -22,6 +24,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
public RemoteUserService create (Throwable throwable) { public RemoteUserService create (Throwable throwable) {
log.error("用户服务调用失败:{}", throwable.getMessage()); log.error("用户服务调用失败:{}", throwable.getMessage());
return new RemoteUserService() { return new RemoteUserService() {
@Override
public Result<List<SysUser>> userList(SysUser sysUser) {
return Result.error("获取用户列表失败:" + throwable.getMessage());
}
@Override @Override
public Result<LoginUser> getUserInfo (String username, String source) { public Result<LoginUser> getUserInfo (String username, String source) {
return Result.error("获取用户失败:" + throwable.getMessage()); return Result.error("获取用户失败:" + throwable.getMessage());

View File

@ -75,6 +75,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
*/ */
public int updateUser (SysUser user); public int updateUser (SysUser user);
List<SysUser>SysUserById(@Param("id") Long id);
/** /**
* *
* *

View File

@ -190,6 +190,12 @@
</foreach> </foreach>
) )
</select> </select>
<select id="SysUserById" resultType="com.muyu.common.system.domain.SysUser">
select user_id, dept_id, user_name, nick_name, email, avatar, phonenumber, sex, password, status, create_by,
create_time, del_flag, login_ip, login_date, remark
from sys_user
where user_id = #{userId}
</select>
<insert id="insertUser" parameterType="com.muyu.common.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId"> <insert id="insertUser" parameterType="com.muyu.common.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user( insert into sys_user(