feat: 获取用户信息接口
This commit is contained in:
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user