Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

auth-microservice

목적 – OrderHub 플랫폼의 회원 인증·인가, 토큰 발급/검증, 세션 관리를 담당하는 핵심 서비스입니다. 사용자 등록·로그인·권한 검증 API를 제공하고, JWT + RTR(Refresh Token Rotation) 전략으로 보안을 강화합니다.


✨ 핵심 기능

영역 기능
회원 회원가입, 로그인, 프로필 조회, 중복검사
인증 Access/Refresh JWT 발급, TTL·재발급, RTR 기반 토큰 로테이션 관리
인가 역할(Role)·권한(Permission) 기반 제한, API 게이트웨이와 연동
보안 정책 비밀번호 해싱(BCrypt)
이벤트 member-created, role-updated 등 Kafka 발행 → Admin/Notification 서비스가 구독

레이어 기술
Runtime Java 21, Spring Boot 3.4.4
Security Spring Security
Token JWT
Persistence PostgreSQL, Spring Data JPA
Messaging Kafka
DevOps Gradle, Docker
Testing JUnit 5, Mockito

⚙️ 아키텍처 개요

 Client ──────▶ Auth API ──────▶ AuthService ──────▶ Member/User Domain
                                        │
                                   JWT Provider
                                        │
                                        ▼
                                   PostgreSQL
                                        ▲
                         Kafka ◀──── events ─────▶ 다른 서비스

도메인 클래스 다이어그램

class Member {
  +UUID id
  +String username
  +String password
  +String realName
  +String tel
  +MemberRole role
  +MemberStatus status
  +Instant createdAt
  +Instant updatedAt
  +updateMemberStatus()
  +updateMemberRole()
  +updateMemberPassword()
  +deleteMember()
}

class MemberRole {
  <<enum>>
  MANAGER
  BOSS
  ADMIN
}

class MemberStatus {
  <<enum>>
  ACTIVE
  SUSPENDED
  DELETED
  PENDING
  EXPIRED
}

class TokenStatus {
  <<enum>>
  AUTHENTICATED
  EXPIRED
  INVALID
}

class RedisTokenStore {
  <<redis>>
  +saveRefreshToken(memberId, token)
  +getRefreshToken(memberId)
  +deleteTokens(memberId)
  +blacklistToken(token, expirationMillis)
  +isAccessTokenBlacklisted(token)
}

Member --> MemberRole
Member --> MemberStatus

Member "1" --> "1" RedisTokenStore : tokens stored in Redis


##🔌 REST API 개요

Base path  /api/auth

Command API

기능 메서드 경로
회원가입 POST /signup
로그인 POST /login
로그아웃 POST /logout
역할 변경 PUT /members/role
상태 변경 PUT /members/status
비밀번호 변경 PUT /members/password
회원 삭제 DELETE /members/{id}

Query API

기능 메서드 경로
전체 조회 GET /
내 정보 조회 GET /me
UUID 조회 GET /{id}
username 조회 GET /username/{username}
상태별 조회 GET /status/{status}
역할별 조회 GET /role/{role}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages