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; import net.maku.system.service.SysAuthService; import net.maku.system.service.SysCaptchaService; import net.maku.system.vo.SysAccountLoginVO; import net.maku.system.vo.SysCaptchaVO; import net.maku.system.vo.SysMobileLoginVO; 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; private final SysAuthService sysAuthService; @GetMapping("captcha") @Operation(summary = "验证码") public Result captcha() { SysCaptchaVO captchaVO = sysCaptchaService.generate(); return Result.ok(captchaVO); } @PostMapping("login") @Operation(summary = "账号密码登录") public Result login(@RequestBody SysAccountLoginVO login) { SysTokenVO token = sysAuthService.loginByAccount(login); return Result.ok(token); } @PostMapping("send/code") @Operation(summary = "发送短信验证码") public Result sendCode(String mobile) { boolean flag = sysAuthService.sendCode(mobile); if (!flag) { return Result.error("短信发送失败!"); } return Result.ok(); } @PostMapping("mobile") @Operation(summary = "手机号登录") public Result mobile(@RequestBody SysMobileLoginVO login) { SysTokenVO token = sysAuthService.loginByMobile(login); return Result.ok(token); } @PostMapping("logout") @Operation(summary = "退出") public Result logout(HttpServletRequest request) { sysAuthService.logout(TokenUtils.getAccessToken(request)); return Result.ok(); } }