[우아한테크코스] 5월 13일 TIL
[Spring] token
클라이언트의 로그인 요청 -> 서버의 토큰 발행(response body)
클라이언트의 토큰 저장(쿠키/authorization)
인가 필요한 요청마다 토큰 전송
- 쿠키에 토큰 저장
4kb까지 저장, 서버에서 접근 가능
HTTP request 시 자동 포함
정보 전달 수단의 쿠키 사용
한정된 도메인에서만 사용 가능 -
웹 스토리지(localStorage, sessionStorage)
보안이 약하다. - Json Web Token
인증 헤더에서 사용되는 토큰의 포맷
Claim(사용자에 대한 프로퍼티나 속성) 기반으로 권한과 인증의 역할이 있다.
jwt는 요청 받고 발급하고 검증만 하면 되어서 추가 저장소가 필요 없다.
refresh token은 긴 유효기간을 가지면서 access token 만료 시 새로 발급해주는 역할
세션/쿠키에 비해 길이가 길어서 서버 자원낭비가 일어날 수 있다.- 사용자 로그인
- 서버는 검증하고 사용자에 아이디 부여, payload 작성해 secret key를 통해 access token(refresh token도 필요하면 이때 발급) 발급해 반환
- jwt 필요한 api 요청시마다 Authorization header에 Access token 담아 보냄
- 서버는 jwt의 시그니처로 복호화해 검증하고 payload 디코딩해서 사용자 정보 보고 괜찮으면 요청한 데이터를 클라이언트에 반환