From ace15206ec965bdb55b0b8e509619b2bfb3a57cb Mon Sep 17 00:00:00 2001 From: xiang Date: Sat, 21 Mar 2026 20:38:38 +0800 Subject: [PATCH] feat:jiekou --- .../xiang/xservice/auth/api/api/TokenApi.java | 5 +++++ .../auth/api/code/Code01UserErrorCode.java | 3 ++- .../server/controller/TokenController.java | 22 +++++++++++++++++++ .../auth/service/service/XUserService.java | 3 +++ .../service/impl/XUserServiceImpl.java | 22 +++++++++++++++++++ 5 files changed, 54 insertions(+), 1 deletion(-) diff --git a/xs-api/src/main/java/com/xiang/xservice/auth/api/api/TokenApi.java b/xs-api/src/main/java/com/xiang/xservice/auth/api/api/TokenApi.java index e416db3..08da7b3 100644 --- a/xs-api/src/main/java/com/xiang/xservice/auth/api/api/TokenApi.java +++ b/xs-api/src/main/java/com/xiang/xservice/auth/api/api/TokenApi.java @@ -7,6 +7,7 @@ import com.xiang.xservice.auth.api.dto.resp.LoginResp; import com.xiang.xservice.auth.api.dto.resp.RegisterResp; import com.xiang.xservice.basic.common.resp.Result; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import javax.validation.Valid; import javax.validation.constraints.NotNull; @@ -16,4 +17,8 @@ public interface TokenApi { Result login(@RequestBody @NotNull(message = "请求参数不能为空") @Valid LoginRequest request); Result register(@RequestBody @Valid @NotNull(message = "请求参数不能为空") RegisterRequest request); + + Result getUserId(@RequestParam(value = "token", required = true) String token); + + Result getTenantId(@RequestParam(value = "token", required = true)String token); } diff --git a/xs-api/src/main/java/com/xiang/xservice/auth/api/code/Code01UserErrorCode.java b/xs-api/src/main/java/com/xiang/xservice/auth/api/code/Code01UserErrorCode.java index 7334596..3ab8dcc 100644 --- a/xs-api/src/main/java/com/xiang/xservice/auth/api/code/Code01UserErrorCode.java +++ b/xs-api/src/main/java/com/xiang/xservice/auth/api/code/Code01UserErrorCode.java @@ -12,7 +12,8 @@ public enum Code01UserErrorCode implements BaseErrorCode { USER_EXISTS("A1000102", "用户已存在"), USER_LOGIN_ERROR("A1000103", "用户登录失败!"), USER_REGISTER_ERROR("1000104", "用户注册失败!"), - REFRESH_TOKEN_NOT_EXISTS("1000105", "refreshToken不匹配") + REFRESH_TOKEN_NOT_EXISTS("1000105", "refreshToken不匹配"), + TOKEN_NOT_VALID("1000106", "token校验失败"), ; private final String code; diff --git a/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/TokenController.java b/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/TokenController.java index 98b512f..e752fe0 100644 --- a/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/TokenController.java +++ b/xs-server/src/main/java/com/xiang/xservice/auth/server/controller/TokenController.java @@ -13,8 +13,10 @@ import com.xiang.xservice.basic.common.resp.Result; import com.xiang.xservice.basic.exception.BusinessException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; @@ -73,6 +75,26 @@ public class TokenController implements TokenApi { return Result.error("操作失败"); } + @Override + @GetMapping("/private/user/getUserId") + public Result getUserId(@RequestParam("token") String token) { + try { + return Result.data(userService.getUserId(token)); + } catch (Exception e) { + return Result.error(e.getMessage()); + } + } + + @Override + @GetMapping("/private/user/getTenantId") + public Result getTenantId(@RequestParam("token") String token) { + try { + return Result.data(userService.getTenantId(token)); + } catch (Exception e) { + return Result.error(e.getMessage()); + } + } + @PostMapping("/private/auth/getInfo") public Result getUserInfo(@RequestBody @Valid @NotNull(message = "请求参数不能为空") UserQueryRequest request) { return Result.data(userService.getUserDetail(request.getUsername())); diff --git a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java index b3264e2..3cbbf87 100644 --- a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java +++ b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/XUserService.java @@ -43,4 +43,7 @@ public interface XUserService { LoginResp refresh(RefreshRequest request); Boolean updateStatus(Long id, Integer status); + + Long getUserId(String token); + Long getTenantId(String token); } diff --git a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java index 23e2d62..7b18e11 100644 --- a/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java +++ b/xs-service/src/main/java/com/xiang/xservice/auth/service/service/impl/XUserServiceImpl.java @@ -413,4 +413,26 @@ public class XUserServiceImpl implements XUserService { user.setStatus(status); return userMapper.update(user) > 0; } + + @Override + public Long getUserId(String token) { + try { + Jwt jwt = jwtDecoder.decode(token); + Object userId = jwt.getClaim("userId"); + return (long) userId; + } catch (Exception e) { + throw new BusinessException(Code01UserErrorCode.TOKEN_NOT_VALID); + } + } + + @Override + public Long getTenantId(String token) { + try { + Jwt jwt = jwtDecoder.decode(token); + Object userId = jwt.getClaim("tenantId"); + return (long) userId; + } catch (Exception e) { + throw new BusinessException(Code01UserErrorCode.TOKEN_NOT_VALID); + } + } }