Registration Flow
POST /auth/users
iOS App → AuthController → AuthService.createUser() → Google API (verifyIdToken)
→ Member-Service (emailDuplicationCheck) → Member-Service (registerMember)
→ JwtUtil (generate) → Member-Service (storeTokens)
Response: 201 Created + userId, accessToken, refreshToken
Login Flow
POST /auth/token
iOS App → AuthController → AuthService.issueToken() → Google API (verifyIdToken)
→ AuthenticationManager (authenticate) → JwtUtil (generate)
→ Member-Service (storeTokens) → Response (201 + tokens)
Response: 200 OK + accessToken, refreshToken
Refresh Token Flow
POST /auth/token/refresh
iOS App (with refresh token) → AuthController → AuthService.refreshToken()
→ Member-Service (findToken) → JwtUtil (extract & generate)
→ Member-Service (storeTokens) → Response (new tokens)
Response: 200 OK + new accessToken, refreshToken
Logout Flow
POST /auth/token/revoke
iOS App (with access token) → AuthController → AuthService.revokeToken()
→ Member-Service (deleteAllToken) → Response ("Logout successful")
Response: 200 OK + “Logout has been successful”
Component Legend
- Client (gray) — iOS App
- Controller (blue) — AuthController
- Service (green) — AuthService
- External API (yellow) — Google API
- Member-Service (purple) — Inter-service calls
- JWT Utility (orange) — JwtUtil
- Security (red) — AuthenticationManager
