2022-08-28 00:01:17 +08:00
|
|
|
package net.maku.system.controller;
|
|
|
|
|
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
import net.maku.framework.common.utils.Result;
|
|
|
|
import net.maku.framework.security.utils.TokenUtils;
|
2022-08-30 22:39:03 +08:00
|
|
|
import net.maku.system.service.SysAuthService;
|
2022-08-28 00:01:17 +08:00
|
|
|
import net.maku.system.service.SysCaptchaService;
|
2022-08-30 22:39:03 +08:00
|
|
|
import net.maku.system.vo.SysAccountLoginVO;
|
|
|
|
import net.maku.system.vo.SysCaptchaVO;
|
|
|
|
import net.maku.system.vo.SysMobileLoginVO;
|
2022-08-28 00:01:17 +08:00
|
|
|
import net.maku.system.vo.SysTokenVO;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 认证管理
|
|
|
|
*
|
|
|
|
* @author 阿沐 babamu@126.com
|
|
|
|
*/
|
|
|
|
@RestController
|
|
|
|
@RequestMapping("sys/auth")
|
|
|
|
@Tag(name = "认证管理")
|
|
|
|
@AllArgsConstructor
|
|
|
|
public class SysAuthController {
|
|
|
|
private final SysCaptchaService sysCaptchaService;
|
2022-08-30 22:39:03 +08:00
|
|
|
private final SysAuthService sysAuthService;
|
2022-08-28 00:01:17 +08:00
|
|
|
|
|
|
|
@GetMapping("captcha")
|
|
|
|
@Operation(summary = "验证码")
|
2022-08-30 22:39:03 +08:00
|
|
|
public Result<SysCaptchaVO> captcha() {
|
|
|
|
SysCaptchaVO captchaVO = sysCaptchaService.generate();
|
2022-08-28 00:01:17 +08:00
|
|
|
|
2022-08-30 22:39:03 +08:00
|
|
|
return Result.ok(captchaVO);
|
2022-08-28 00:01:17 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
@PostMapping("login")
|
2022-08-30 22:39:03 +08:00
|
|
|
@Operation(summary = "账号密码登录")
|
|
|
|
public Result<SysTokenVO> login(@RequestBody SysAccountLoginVO login) {
|
|
|
|
SysTokenVO token = sysAuthService.loginByAccount(login);
|
2022-08-28 00:01:17 +08:00
|
|
|
|
2022-08-30 22:39:03 +08:00
|
|
|
return Result.ok(token);
|
|
|
|
}
|
2022-08-28 00:01:17 +08:00
|
|
|
|
2022-08-30 22:39:03 +08:00
|
|
|
@PostMapping("send/code")
|
|
|
|
@Operation(summary = "发送短信验证码")
|
|
|
|
public Result<String> sendCode(String mobile) {
|
2022-10-17 12:12:39 +08:00
|
|
|
boolean flag = sysAuthService.sendCode(mobile);
|
|
|
|
if (!flag) {
|
|
|
|
return Result.error("短信发送失败!");
|
|
|
|
}
|
2022-08-28 00:01:17 +08:00
|
|
|
|
2022-08-30 22:39:03 +08:00
|
|
|
return Result.ok();
|
|
|
|
}
|
2022-08-28 00:01:17 +08:00
|
|
|
|
2022-08-30 22:39:03 +08:00
|
|
|
@PostMapping("mobile")
|
|
|
|
@Operation(summary = "手机号登录")
|
|
|
|
public Result<SysTokenVO> mobile(@RequestBody SysMobileLoginVO login) {
|
|
|
|
SysTokenVO token = sysAuthService.loginByMobile(login);
|
2022-08-28 00:01:17 +08:00
|
|
|
|
2022-08-30 22:39:03 +08:00
|
|
|
return Result.ok(token);
|
2022-08-28 00:01:17 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
@PostMapping("logout")
|
|
|
|
@Operation(summary = "退出")
|
|
|
|
public Result<String> logout(HttpServletRequest request) {
|
2022-08-30 22:39:03 +08:00
|
|
|
sysAuthService.logout(TokenUtils.getAccessToken(request));
|
2022-08-28 00:01:17 +08:00
|
|
|
|
|
|
|
return Result.ok();
|
|
|
|
}
|
|
|
|
}
|