작동 원리
1. 클라이언트에서 유저가 credentials(아이디, 비밀번호) 로 서비스에 로그인
2. 서버는 서명된 JWT를 생성하고 response에 넣어 반환
3. 클라이언트에서 서버에 추가적인 요청을 보낼 때, JWT를 HTTP header에 첨부
4. 서버는 클라이언트에서 온 JWT를 검증하고 데이터 반
로그인 성공 -> JWT 반환
- 인증(authentication) 과정에서 유저가 로그인에 성공하면, JWT가 반환된다
- 이때, 토큰은 보안 문제를 방지하기 위한 세심한 주의가 필요하다
토큰 관련 주의사항
- 토큰은 가능한 짧게 보관하는 것이 좋다 (탈취당하는 것을 막기 위해)
- 토큰을 브라우저 저장소(로컬 스토리지 or 세션 스토리지 등) 에 저장하면 안된다
토큰 형태
- 유저가 보호되는 경로 (protected route) 또는 리소스에 접근하려고 할 때마다 JWT를 보내야 한다.
- JWT는 header의 Authorization에 위치
- 형태 : Authorization: Bearer <token>
토큰이 Authorization header로 보내지면, 쿠키를 사용하지 않기 때문에, CORS 에러에서 자유롭다