| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package com.qqflow.engine.domain.system.controller;
- import com.qqflow.engine.common.Result;
- import com.qqflow.engine.common.util.SecurityUtils;
- import com.qqflow.engine.config.security.LoginUser;
- import com.qqflow.engine.domain.system.assembler.UserAssembler;
- import com.qqflow.engine.domain.system.dto.LoginDTO;
- import com.qqflow.engine.domain.system.dto.UserDTO;
- import com.qqflow.engine.domain.system.entity.SysUser;
- import com.qqflow.engine.domain.system.service.SysUserService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.annotation.Resource;
- import jakarta.servlet.http.HttpServletRequest;
- import jakarta.validation.Valid;
- import org.springframework.web.bind.annotation.*;
- import java.util.HashMap;
- import java.util.Map;
- @Tag(name = "认证管理")
- @RestController
- @RequestMapping("/auth")
- public class AuthController {
- @Resource
- private SysUserService sysUserService;
- @Operation(summary = "用户登录")
- @PostMapping("/login")
- public Result<Map<String, String>> login(@Valid @RequestBody LoginDTO loginDTO) {
- String token = sysUserService.login(loginDTO);
- Map<String, String> map = new HashMap<>();
- map.put("token", token);
- return Result.ok(map);
- }
- @Operation(summary = "用户登出")
- @PostMapping("/logout")
- public Result<Void> logout(HttpServletRequest request) {
- String token = request.getHeader("Authorization");
- sysUserService.logout(token);
- return Result.ok();
- }
- @Operation(summary = "刷新token")
- @PostMapping("/refresh")
- public Result<Map<String, String>> refresh(HttpServletRequest request) {
- String token = request.getHeader("Authorization");
- String newToken = sysUserService.refreshToken(token);
- Map<String, String> map = new HashMap<>();
- map.put("token", newToken);
- return Result.ok(map);
- }
- @Operation(summary = "获取当前登录用户信息")
- @GetMapping("/info")
- public Result<UserDTO> info() {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- if (loginUser == null) {
- return Result.error(401, "未登录");
- }
- SysUser user = sysUserService.getByUsername(loginUser.getUsername());
- return Result.ok(UserAssembler.toDTO(user));
- }
- }
|