| 인증 | 클라이언트 | 서버 |
|---|---|---|
| 1 | 로그인 요청 | |
| 2 | DB에서 ID와 비밀번호 대조 후 일치여부 확인 | |
| 3 | 일치 시 암호화된 토큰 생성 | |
| 4 | 응답으로 Access Token / Refresh Token 반환 | |
| 5 | 클라이언트에 토큰 저장 | |
| 인가 | ||
| 1 | API 요청 시 헤더에 Access Token을 포함시켜 요청 | |
| 2 | 토큰을 복호화하여 유효성 검증 | |
| 3 | 유효성 확인 중 Access Token이 만료가 되지 않음 | |
| 4 | 응답을 받음 | 검증 완료 시 API 로직 처리 후 응답 |
| 재발급 | ||
| 1 | API 요청 시 헤더에 Access Token을 포함시켜 요청 | |
| 2 | 토큰 유효성 검증 | |
| 3 | 유효성 확인 중 Access Token이 만료됨 | |
| 4 | 응답으로 Access Token이 만료되었음을 알림 | |
| 5 | Refresh Token을 헤더에 포함시켜 Access Token 재발급 요청 | |
| 6 | Refresh Token의 유효성 검증 | |
| 7 | 새로운 Access Token을 응답으로 반환하여 발급 | |
| 8 | 새로운 Access Token 저장 |
1.4.3. 인증
앞의 인증 플로우와 다른 점은 인증 완료 시 Access Token과 함께 Refresh Token을 발급
1.4.4. 인가와 토큰 재발급
인가 중 Access Token이 만료되었을 때 클라이언트에 만료되었음을 응답으로 보냄
클라이언트는 만료되었음을 확인하고 Refresh Token을 헤더에 실어서 Access Token의 재발급 요청
서버는 마찬가지로 Refresh Token의 유효성을 검증한 후 Access Token을 재발급
재발급된 Access Token으로 API 요청