feat: 获取用户信息接口

This commit is contained in:
2025-11-30 10:54:55 +08:00
parent 9564b1a13c
commit 991f6850c7
4 changed files with 44 additions and 4 deletions

View File

@ -2,14 +2,12 @@ package day.gitlab.dolphin.auth.controller;
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
import day.gitlab.dolphin.auth.entity.vo.UserInfoVO;
import day.gitlab.dolphin.auth.service.AuthService;
import day.gitlab.dolphin.common.core.entity.Result;
import day.gitlab.dolphin.common.security.annotation.AuthorityIgnore;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/auth")
@ -23,4 +21,9 @@ public class AuthController {
public Result<LoginVO> login(@RequestBody LoginDTO loginDTO) {
return Result.success(authService.login(loginDTO));
}
@GetMapping("/getUserInfo")
public Result<UserInfoVO> getUserInfo() {
return Result.success(authService.getUserInfo());
}
}

View File

@ -0,0 +1,21 @@
package day.gitlab.dolphin.auth.entity.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoVO {
private String id;
private String username;
private List<String> authorities;
}

View File

@ -2,8 +2,11 @@ package day.gitlab.dolphin.auth.service;
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
import day.gitlab.dolphin.auth.entity.vo.UserInfoVO;
public interface AuthService {
LoginVO login(LoginDTO loginDTO);
UserInfoVO getUserInfo();
}

View File

@ -3,10 +3,13 @@ package day.gitlab.dolphin.auth.service.impl;
import day.gitlab.dolphin.auth.constants.Exceptions;
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
import day.gitlab.dolphin.auth.entity.vo.UserInfoVO;
import day.gitlab.dolphin.auth.service.AuthService;
import day.gitlab.dolphin.common.core.i18n.MessagesHelper;
import day.gitlab.dolphin.common.core.util.BCrypt;
import day.gitlab.dolphin.common.security.Authentication;
import day.gitlab.dolphin.common.security.AuthenticationProvider;
import day.gitlab.dolphin.common.security.SecurityContextHolder;
import day.gitlab.dolphin.common.security.UserPrincipal;
import day.gitlab.dolphin.common.security.jwt.JwtInfo;
import day.gitlab.dolphin.rbac.constants.UserEnabled;
@ -48,6 +51,16 @@ public class AuthServiceImpl implements AuthService, AuthenticationProvider {
.build();
}
@Override
public UserInfoVO getUserInfo() {
Authentication authentication = SecurityContextHolder.getAuthentication();
return UserInfoVO.builder()
.id(authentication.getUserPrincipal().getId())
.username(authentication.getUserPrincipal().getNickname())
.authorities(authentication.getUserAuthorities())
.build();
}
@Override
public UserPrincipal getUserPrincipal(String userId) {
User user = userMapper.selectOneById(userId);