Skip to content

Feat: 토큰으로 유저 조회 GRPC#10

Merged
dungbik merged 1 commit intomainfrom
feat/get-user-by-token
Mar 31, 2026
Merged

Feat: 토큰으로 유저 조회 GRPC#10
dungbik merged 1 commit intomainfrom
feat/get-user-by-token

Conversation

@dungbik
Copy link
Copy Markdown
Contributor

@dungbik dungbik commented Mar 31, 2026

Summary by CodeRabbit

새로운 기능

  • JWT 토큰을 기반으로 하는 사용자 조회 기능 추가
    • 제공된 액세스 토큰을 검증하여 사용자의 ID와 닉네임 정보를 조회할 수 있습니다.
    • 토큰 검증 실패, 사용자 미존재, 시스템 오류에 대한 적절한 오류 처리 메커니즘을 포함합니다.

@dungbik dungbik requested a review from stoneTiger0912 March 31, 2026 14:13
@dungbik dungbik self-assigned this Mar 31, 2026
@dungbik dungbik added the enhancement New feature or request label Mar 31, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 31, 2026

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

JWT 토큰 기반의 사용자 조회 기능을 새로운 gRPC RPC 핸들러 getUserByToken으로 추가했습니다. 토큰 유효성 검증 후 사용자 정보를 반환하거나 인증 및 사용자 미발견 오류를 처리합니다.

Changes

Cohort / File(s) Summary
gRPC 서비스 확장
src/main/java/flipnote/user/user/presentation/grpc/GrpcUserQueryService.java
JWT 토큰을 통한 사용자 조회 메서드 추가. 토큰 검증 시 JwtProvider 사용하며, 유효하지 않은 토큰은 Status.UNAUTHENTICATED, 사용자 미발견 시 Status.NOT_FOUND로 응답. 예상치 못한 오류는 Status.INTERNAL로 처리.
Protobuf 메시지 정의
src/main/proto/user_query.proto
GetUserByToken RPC 메서드 및 관련 요청/응답 메시지 추가. GetUserByTokenRequestaccess_token 문자열을 포함하고, GetUserByTokenResponseuser_idnickname을 반환.

Sequence Diagram

sequenceDiagram
    participant Client
    participant GrpcUserQueryService
    participant JwtProvider
    participant UserRepository
    
    Client->>GrpcUserQueryService: getUserByToken(request)
    GrpcUserQueryService->>JwtProvider: validate(accessToken)
    
    alt Token Valid
        JwtProvider-->>GrpcUserQueryService: TokenClaims
        GrpcUserQueryService->>UserRepository: getUserById(userId)
        
        alt User Found
            UserRepository-->>GrpcUserQueryService: User
            GrpcUserQueryService-->>Client: GetUserByTokenResponse(userId, nickname)
        else User Not Found
            UserRepository-->>GrpcUserQueryService: null
            GrpcUserQueryService-->>Client: Status.NOT_FOUND
        end
    else Token Invalid
        JwtProvider-->>GrpcUserQueryService: Exception
        GrpcUserQueryService-->>Client: Status.UNAUTHENTICATED
    else Unexpected Error
        GrpcUserQueryService-->>Client: Status.INTERNAL
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Feat: 이메일로 회원 조회 GRPC #7: 동일한 GrpcUserQueryService 클래스에 새로운 gRPC RPC 핸들러와 protobuf 메시지를 추가하는 점에서 관련 있음 (이메일 조회 vs 토큰/JWT 조회).

Suggested reviewers

  • stoneTiger0912

Poem

토큰 검증의 신비로운 길 🐰✨
JWT의 비밀을 풀어내고
사용자를 찾아내는 마법,
gRPC로 춤을 춘다 💫
인증과 신뢰의 손잡이!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 PR의 주요 변경사항인 토큰 기반 사용자 조회 기능 추가를 명확하게 요약하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/get-user-by-token

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dungbik dungbik merged commit 9d8831e into main Mar 31, 2026
2 of 3 checks passed
@dungbik dungbik deleted the feat/get-user-by-token branch March 31, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant