Skip to content

Feat: 인증 기능 구현#3

Merged
Yujin1219 merged 3 commits into
developfrom
feat/auth
Mar 27, 2026
Merged

Feat: 인증 기능 구현#3
Yujin1219 merged 3 commits into
developfrom
feat/auth

Conversation

@ggamnunq
Copy link
Copy Markdown
Contributor

@ggamnunq ggamnunq commented Mar 27, 2026

🎯 작업 내용

주요 변경사항

  • 로그인, 회원가입, 로그아웃, 토큰재발급 API
  • 토큰관리
  • Security 설정
  • @CurrentMember 구현
  • CD 빌드 수정

상세 내용

  • API 구현
    • 회원가입 POST /api/auth/signup
    • 로그인 POST /api/auth/login
    • 로그아웃 POST /api/auth/logout
    • 토큰 재발급 POST /api/auth/refresh-token
    sequenceDiagram
        autonumber
        participant Client
        participant Controller as AuthController
        participant Service as LocalLoginService
        participant AuthService as AuthenticationService
        participant Repo as MemberRepository
        participant Encoder as PasswordEncoder
        participant Jwt as JwtTokenProvider
        participant TokenService as TokenService
        participant Redis as RefreshToken Store
    
        Client->>Controller: POST /api/auth/signup\nAuthRequest.SignUpDTO
        Controller->>Service: signUp(request)
        Service->>Repo: existsByEmail(email)
        Repo-->>Service: false
        Service->>Encoder: encode(password)
        Encoder-->>Service: encoded password
        Service->>Repo: save(Member)
        Repo-->>Service: Member
        Service->>AuthService: generateLoginResponse(member)
    
        AuthService->>Jwt: issueRefreshToken(authentication)
        Jwt-->>AuthService: refreshToken
        AuthService->>TokenService: saveRefreshToken(memberId, refreshToken)
        TokenService->>Redis: save(memberId, refreshToken)
        Redis-->>TokenService: saved
        AuthService->>Jwt: issueAccessToken(authentication)
        Jwt-->>AuthService: accessToken
        AuthService-->>Service: AuthResponse.LoginResponseDTO
        Service-->>Controller: response
        Controller-->>Client: accessToken + member info\nSet-Cookie: refreshToken
    
    
    Loading
  • 토큰 관리
    • refresh token을 redis에서 관리하도록 구현
    • Token 저장소를 다루는 TokenRepository 구현
  • 인증 설정 작성 ( Security 설정 )
    • 인증 설정 패키지 구조
    global/auth
    ├── annotation
    │   └── CurrentMember.java
    ├── jwt
    │   ├── application
    │   │   └── TokenService.java
    │   ├── dao
    │   │   └── TokenRepository.java
    │   ├── filter
    │   │   └── JwtAuthenticationFilter.java
    │   └── provider
    │       ├── JwtTokenProvider.java
    │       └── JwtValidationType.java
    ├── redis
    │   └── Token.java
    ├── resolver
    │   └── CurrentMemberArgumentResolver.java
    └── security
        ├── CustomAccessDeniedHandler.java
        ├── CustomJwtAuthenticationEntryPoint.java
        └── MemberAuthentication.java
    
    

✅ 체크리스트

  • 코드 빌드가 정상적으로 완료되었나요?
  • 코드 리뷰 요청 전 self-review를 진행했나요?

📋 API 명세서

image

🚧 후속 작업

  • 곧바로 회의 기능 구현해서 올리겠습니다

  - 로그인, 회원가입 API
  - 토큰 관리
  - 로그아웃, 액세스토큰 재발급 API
@ggamnunq ggamnunq self-assigned this Mar 27, 2026
@ggamnunq ggamnunq requested a review from Yujin1219 March 27, 2026 08:06
Copy link
Copy Markdown
Member

@Yujin1219 Yujin1219 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다~!

@Yujin1219 Yujin1219 merged commit 2a1bf50 into develop Mar 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants