| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.zsElectric.boot.auth.controller;
- import com.zsElectric.boot.auth.model.vo.CaptchaVO;
- import com.zsElectric.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
- import com.zsElectric.boot.auth.model.dto.WxMiniAppPhoneCodeLoginDTO;
- import com.zsElectric.boot.common.enums.LogModuleEnum;
- import com.zsElectric.boot.core.web.Result;
- import com.zsElectric.boot.auth.service.AuthService;
- import com.zsElectric.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
- import com.zsElectric.boot.common.annotation.Log;
- import com.zsElectric.boot.security.model.AuthenticationToken;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.Parameter;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.validation.Valid;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.web.bind.annotation.*;
- import java.util.Map;
- /**
- * 认证控制层
- *
- * @author Ray.Hao
- * @since 2022/10/16
- */
- @Tag(name = "01.认证中心")
- @RestController
- @RequestMapping("/api/v1/auth")
- @RequiredArgsConstructor
- @Slf4j
- public class AuthController {
- private final AuthService authService;
- @Operation(summary = "获取验证码")
- @GetMapping("/captcha")
- public Result<CaptchaVO> getCaptcha() {
- CaptchaVO captcha = authService.getCaptcha();
- return Result.success(captcha);
- }
- @Operation(summary = "账号密码登录")
- @PostMapping("/login")
- @Log(value = "登录", module = LogModuleEnum.LOGIN)
- public Result<AuthenticationToken> login(
- @Parameter(description = "用户名", example = "admin") @RequestParam String username,
- @Parameter(description = "密码", example = "123456") @RequestParam String password
- ) {
- AuthenticationToken authenticationToken = authService.login(username, password);
- return Result.success(authenticationToken);
- }
- @Operation(summary = "短信验证码登录")
- @PostMapping("/login/sms")
- @Log(value = "短信验证码登录", module = LogModuleEnum.LOGIN)
- public Result<AuthenticationToken> loginBySms(
- @Parameter(description = "手机号", example = "18812345678") @RequestParam String mobile,
- @Parameter(description = "验证码", example = "1234") @RequestParam String code
- ) {
- AuthenticationToken loginResult = authService.loginBySms(mobile, code);
- return Result.success(loginResult);
- }
- @Operation(summary = "发送登录短信验证码")
- @PostMapping("/sms/code")
- public Result<Void> sendLoginVerifyCode(
- @Parameter(description = "手机号", example = "18812345678") @RequestParam String mobile
- ) {
- authService.sendSmsLoginCode(mobile);
- return Result.success();
- }
- @Operation(summary = "微信授权登录(Web)")
- @PostMapping("/login/wechat")
- @Log(value = "微信登录", module = LogModuleEnum.LOGIN)
- public Result<AuthenticationToken> loginByWechat(
- @Parameter(description = "微信授权码", example = "code") @RequestParam String code
- ) {
- AuthenticationToken loginResult = authService.loginByWechat(code);
- return Result.success(loginResult);
- }
- @Operation(summary = "微信小程序登录(Code)")
- @PostMapping("/wx/miniapp/code-login")
- public Result<AuthenticationToken> loginByWxMiniAppCode(@RequestBody @Valid WxMiniAppCodeLoginDTO loginDTO) {
- AuthenticationToken token = authService.loginByWxMiniAppCode(loginDTO);
- return Result.success(token);
- }
- @Operation(summary = "微信小程序登录(手机号)")
- @PostMapping("/wx/miniapp/phone-login")
- public Result<AuthenticationToken> loginByWxMiniAppPhone(@RequestBody @Valid WxMiniAppPhoneLoginDTO loginDTO) {
- AuthenticationToken token = authService.loginByWxMiniAppPhone(loginDTO);
- return Result.success(token);
- }
- @Operation(summary = "微信小程序登录(手机号Code-新版)")
- @PostMapping("/wx/miniapp/phone-code-login")
- public Result<AuthenticationToken> loginByWxMiniAppPhoneCode(@RequestBody @Valid WxMiniAppPhoneCodeLoginDTO loginDTO) {
- log.info("收到手机号Code登录请求, code: {}, phoneCode: {}", loginDTO.getCode(), loginDTO.getPhoneCode());
- AuthenticationToken token = authService.loginByWxMiniAppPhoneCode(loginDTO);
- log.info("手机号Code登录成功");
- return Result.success(token);
- }
- @Operation(summary = "运营商获取token")
- @PostMapping("/query_token")
- public Result<AuthenticationToken> loginBy(@RequestBody @Valid WxMiniAppPhoneLoginDTO loginDTO) {
- AuthenticationToken token = authService.loginByWxMiniAppPhone(loginDTO);
- return Result.success(token);
- }
- @Operation(summary = "退出登录")
- @DeleteMapping("/logout")
- @Log(value = "退出登录", module = LogModuleEnum.LOGIN)
- public Result<?> logout() {
- authService.logout();
- return Result.success();
- }
- @Operation(summary = "刷新令牌")
- @PostMapping("/refresh-token")
- public Result<?> refreshToken(@RequestBody Map<String, String> map) {
- AuthenticationToken authenticationToken = authService.refreshToken(map.get("refreshToken"));
- return Result.success(authenticationToken);
- }
- }
|