JWT 에 대해서BACKEND/Spring Boot2023. 11. 7. 10:30
Table of Contents
JWT (Json Web Token)
클라이언트-서버 간 서비스 통신 시 정보를 json 객체를 통해 안전하게 전송하고 권한을 위해 사용하는 토큰이다.
사용 이유
인증 권한 부여
사용자가 로그인하고 난 뒤 서버에 보내는 요청에 JWT 토큰이 포함되어서 사용자가 해당 토큰으로 허용되는 경로에 엑세스 할 수 있음 ( API 접근 등)
JWT 구조
세 파트로 이뤄지고, 각 파트는 점으로 구별한다.
(A) Header
토큰 타입과 해시 암호화 알고리즘으로 구성되어 있다.
- 토큰 타입: jwt
- 해시 암호화 알고리즘: BASE 64 ..etc
(B) PayLoad
토큰에 담을 클레임 (claim) 정보를 포함하고 있다.
클레임의 정보는 비공개, 공개, 등록 클레임 세가지가 있다.
(C) signature
secret key를 포함해 암호화가 되어있다.
Secret key
jwt에서 secret key를 이용해 토큰을 생성한다고 한다. 이게 뭔 말이지 싶었는데 과정을 보면 이해가 간다.
1. 회원이 id, pw를 가지고 로그인을 한다.
2. 서버가 요청을 확인해 secret key를 통해 access token을 발급한다.
3. 클라이언트에서 API를 요청할 때, 클라이언트가 Authorization header에 access token을 담아서 보낸다.
4. 서버는 jwt 토큰 중 마지막 부분인 signature을 확인해서 서버가 가진 secret key와 맞는지 확인한다.
5. payload 를 보고 사용자 정보를 확인한다.
✅ 이후 인증이 필요한 모든 접근에 토큰을 활용한다.
'BACKEND > Spring Boot' 카테고리의 다른 글
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 1일 차 JPA에 대해서 (4) | 2024.10.21 |
---|---|
Spring Container는 어떻게 생성될까 (0) | 2024.09.22 |
Tomcat은 어떻게 동작하는가 (0) | 2024.09.22 |
테스트 스텁과 목 오브젝트의 차이점 (1) | 2024.09.19 |
스프링 시큐리티- UserDetails 관련 (0) | 2023.11.07 |
@chaerrii :: 버그 수집가
안녕하세오 저는 똑똑해지고 싶은 버그 수집가에오
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!