【新增】验证码登录接口
This commit is contained in:
19
src/main/java/com/corewing/app/dto/api/CodeLoginRequest.java
Normal file
19
src/main/java/com/corewing/app/dto/api/CodeLoginRequest.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package com.corewing.app.dto.api;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 验证码登录请求对象
|
||||
*/
|
||||
@Data
|
||||
public class CodeLoginRequest {
|
||||
|
||||
@NotBlank(message = "手机号或邮箱不能为空")
|
||||
private String account;
|
||||
|
||||
@NotBlank(message = "验证码不能为空")
|
||||
private String verificationCode;
|
||||
|
||||
}
|
||||
@@ -183,4 +183,13 @@ public class AppUserController {
|
||||
public Result<String> forgetPassword(@RequestBody ForgetPasswordRequest request) {
|
||||
return Result.isBool(userService.forgetPassword(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证码登录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/codeLogin")
|
||||
public Result<String> codeLogin(CodeLoginRequest codeLoginRequest) {
|
||||
return Result.isBool(userService.codeLogin(codeLoginRequest));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.corewing.app.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.corewing.app.dto.api.CodeLoginRequest;
|
||||
import com.corewing.app.dto.api.ForgetPasswordRequest;
|
||||
import com.corewing.app.dto.biz.user.BizUserStatusRequest;
|
||||
import com.corewing.app.dto.biz.user.ResetPasswordRequest;
|
||||
@@ -121,4 +122,11 @@ public interface UserService extends IService<User> {
|
||||
* @return
|
||||
*/
|
||||
boolean forgetPassword(ForgetPasswordRequest request);
|
||||
|
||||
/**
|
||||
* 验证码登录
|
||||
* @param codeLoginRequest
|
||||
* @return
|
||||
*/
|
||||
boolean codeLogin(CodeLoginRequest codeLoginRequest);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.corewing.app.common.page.PageContext;
|
||||
import com.corewing.app.dto.api.CodeLoginRequest;
|
||||
import com.corewing.app.dto.api.ForgetPasswordRequest;
|
||||
import com.corewing.app.dto.biz.user.BizUserStatusRequest;
|
||||
import com.corewing.app.dto.biz.user.ResetPasswordRequest;
|
||||
@@ -274,4 +275,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
user.setPassword(encryptPassword);
|
||||
return updateById(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean codeLogin(CodeLoginRequest request) {
|
||||
|
||||
// 校验验证码是否正确
|
||||
String codeKey = String.format("verify_code:%s:%s", "login", request.getAccount());
|
||||
Object checkCode = redisUtil.get(codeKey);
|
||||
if(checkCode == null || !request.getVerificationCode().equalsIgnoreCase(checkCode.toString())) {
|
||||
throw new RuntimeException(I18nUtil.getMessage("error.verify.code.invalid"));
|
||||
}
|
||||
|
||||
/// 校验账号是否存在
|
||||
User user = getByAccount(request.getAccount());
|
||||
if(user == null) {
|
||||
throw new RuntimeException(I18nUtil.getMessage("error.user.not.found"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user