【新增】验证码登录接口
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) {
|
public Result<String> forgetPassword(@RequestBody ForgetPasswordRequest request) {
|
||||||
return Result.isBool(userService.forgetPassword(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.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
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.api.ForgetPasswordRequest;
|
||||||
import com.corewing.app.dto.biz.user.BizUserStatusRequest;
|
import com.corewing.app.dto.biz.user.BizUserStatusRequest;
|
||||||
import com.corewing.app.dto.biz.user.ResetPasswordRequest;
|
import com.corewing.app.dto.biz.user.ResetPasswordRequest;
|
||||||
@@ -121,4 +122,11 @@ public interface UserService extends IService<User> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
boolean forgetPassword(ForgetPasswordRequest request);
|
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.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.corewing.app.common.page.PageContext;
|
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.api.ForgetPasswordRequest;
|
||||||
import com.corewing.app.dto.biz.user.BizUserStatusRequest;
|
import com.corewing.app.dto.biz.user.BizUserStatusRequest;
|
||||||
import com.corewing.app.dto.biz.user.ResetPasswordRequest;
|
import com.corewing.app.dto.biz.user.ResetPasswordRequest;
|
||||||
@@ -274,4 +275,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||||||
user.setPassword(encryptPassword);
|
user.setPassword(encryptPassword);
|
||||||
return updateById(user);
|
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