JWT(JSON Web Token) 기반 인증 구현하기
1. Token 기반 인증이란?
토큰 기반 인증은 서버에서 사용자 인증 후 토큰을 발급하고, 클라이언트는 이 토큰을 저장해 API 요청 시 함께 전송하는 방식입니다.
1.1 기존 인증 방식과의 차이점
세션 기반 인증
- 서버가 사용자의 정보를 세션으로 관리
- 서버 메모리에 부담
- 서버 확장이 어려움
쿠키 기반 인증
- 쿠키에 인증 정보 저장
- CSRF(Cross-Site Request Forgery) 공격에 취약
- 도메인 제한적
토큰 기반 인증
- 서버가 상태를 저장하지 않음 (Stateless)
- 확장성이 좋음
- 클라이언트 사이드에서 관리 가능
2. Access Token과 Refresh Token
2.1 Access Token
- 실제 리소스에 접근할 때 사용하는 토큰
- 비교적 짧은 유효기간 (보통 1시간 내외)