Notice
Recent Posts
Recent Comments
Link
투케이2K
75. (TWOK/LOGIC) [HTTP] JWT (Json Web Token) AccessToken (액세스 토큰) 과 RefreshToken (리프래쉬 토큰) 갱신 및 업데이트 본문
투케이2K 로직정리
75. (TWOK/LOGIC) [HTTP] JWT (Json Web Token) AccessToken (액세스 토큰) 과 RefreshToken (리프래쉬 토큰) 갱신 및 업데이트
투케이2K 2024. 10. 2. 20:06[로직 정리]
정리 로직 : HTTP
상태 : [HTTP] JWT (Json Web Token) AccessToken (액세스 토큰) 과 RefreshToken (리프래쉬 토큰) 갱신 및 업데이트
[설 명]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : NodeJs
- 개발 툴 : VsCode
- 개발 기술 : JWT (Json Web Token) 인증 토큰
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[사전) JWT 간략 설명]
// --------------------------------------------------------------------------------------
1. JWT 란 클라이언트와 서버 사이에서 통신을 수행할 때 권한을 인증 하기 위해 사용하는 토큰입니다
2. JWT 구성 요소 :
- 헤더 (header) : 알고리즘 , 토큰 사용에 대한 정보 (ex: 어떠한 토큰을 사용할 것 인지)
- 페이로드 (payload) : 전달하려는 정보 (사용자 ID, 토큰 발급일, 토큰 만료일, 기타 데이터 등)
- 서명 (signature) : 서버가 발급해준 비밀키로 헤더 , 페이로드 를 암호화시켜 토큰을 변조하기 어렵게 만듦
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 정리]
// --------------------------------------------------------------------------------------
1. [클라이언트] >> [서버] 액세스 토큰 발급 요청 API 호출 수행 실시
>> 클라이언트에서는 파라미터로 사용자 정보 ID , 폰 번호 등을 넘겨줌
2. [서버] 는 [DB] 를 조회해 사용자 확인 실시
3. [서버] 는 사용자가 맞는 경우 액세스 토큰 및 리프래쉬 토큰 발급 실시
>> 리프래쉬 토큰은 사용자 정보 DB 테이블에 저장 수행 (추후, 토큰 갱신 처리 위함)
4. [서버] 는 [클라이언트] 에 응답 , 액세스 토큰 (JWT) 반환 실시
5. [클라이언트] 는 [서버] 에 액세스 토큰 (JWT) 을 가지고 필요한 데이터 요청 실시
>> 헤더에 Bearer token 추가
6. [서버] 는 헤더에 포함 된 액세스 토큰 파싱 후 (Bearer 문자열 제거) 액세스 토큰 유효성 검증 수행
>> 토큰 만료 상태 및 사용자 정보 인증 확인
7. [서버] 는 액세스 토큰 (JWT) 가 유효한 경우 , [클라이언트] 가 요청한 데이터를 반환 (response) 실시
8. [서버] 는 액세스 토큰 (JWT) 이 유효하지 않은 경우 , 403 접근 권한 에러 리턴 또는 DB 에 저장 된 리프래쉬 토큰을 사용해 액세스 토큰 재발급 후 헤더에 포함해서 리턴 수행
>> 사전 로직 협의 필요 : 403 을 반환하는 경우는 클라이언트가 다시 액세스 토큰 발급 요청을 수행
>> 사전 로직 협의 필요 : 헤더에 다시 갱신 토큰 리턴하는 경우는 클라이언트는 지속적으로 Response 헤더 토큰 확인 후 로컬에 최신 상태 저장 필요
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[JWT 개념 학습 참고 사이트]
https://blog.naver.com/kkh0977/222934042760?trackingCode=blog_bloghome_searchlist
[NodeJs - JWT Access Token 과 Refresh Token 생성 방법]
https://blog.naver.com/kkh0977/223312598939?trackingCode=blog_bloghome_searchlist
[NodeJs - JWT 유효성 검증 방법]
https://blog.naver.com/kkh0977/223311615955?trackingCode=blog_bloghome_searchlist
[NodeJs - JWT Access Token 과 Refresh Token 갱신 방법]
https://blog.naver.com/kkh0977/223312630682?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments