-
Notifications
You must be signed in to change notification settings - Fork 0
[Feat/refresh-token-abstraction] - 리프레쉬 로직 추상화, Profile 분리 #77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThis change introduces a persistent refresh token system for authentication. It adds JPA entities, repositories, and service logic to store and manage refresh tokens in both database and in-memory cache, depending on the environment. The schema is updated to include a new table for refresh tokens. Acceptance and unit tests are added to verify token refresh behavior. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant TokenRefreshService
participant JwtTokenRepository
participant UserFinder
participant JwtResolver
participant JwtTokenFactory
Client->>TokenRefreshService: putRefreshToken(userPublicId, refreshToken)
TokenRefreshService->>UserFinder: findByPublicId(userPublicId)
UserFinder-->>TokenRefreshService: User
TokenRefreshService->>JwtTokenRepository: saveRefreshTokenWithUserId(userId, refreshToken)
Client->>TokenRefreshService: refreshAccessToken(refreshToken)
TokenRefreshService->>JwtResolver: verifyRefreshToken(refreshToken)
JwtResolver-->>TokenRefreshService: userPublicId
TokenRefreshService->>UserFinder: findByPublicId(userPublicId)
UserFinder-->>TokenRefreshService: User
TokenRefreshService->>JwtTokenRepository: findRefreshTokenByUserId(userId)
JwtTokenRepository-->>TokenRefreshService: Optional<refreshToken>
TokenRefreshService->>JwtTokenFactory: generateAccessToken(user)
JwtTokenFactory-->>TokenRefreshService: accessToken
TokenRefreshService-->>Client: TokenPair(accessToken, refreshToken)
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (15)
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Join our Discord community for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
/gemini-review |
8b6b745 to
3af3f5a
Compare
|
작업내역
Summary by CodeRabbit