💡 사이드 프로젝트에서 JWT 방식으로 로그인을 구현하면서 정리한 내용 입니다.
인증 vs 인가
인증(Authentication)
- 로그인과 같이 사용자의 신원을 확인하는 과정
- 어떤 시스템에 특정 유저가 등록되었는지 확인하는 과정
인가(Authorization)
- 로그인 된 사용자가 어떤 권한을 가지는지 확인하는 과정
인가 이전에 인증이 선행되어야 한다.
[10분 테코톡] 🎡토니의 인증과 인가
Spring Security + JWT 동작 원리
- 클라이언트에서 id, pw로 로그인을 요청한다.
- 서버에서 검증 후 해당 유저가 존재하면
Access Token + Refresh Token
을 발급한다.
- 클라이언트는 요청 헤더에 Access Token을 담아서 API를 요청한다.
Access Token
- 인증된 사용자가 특정 리소스에 접근할 때 사용되는 토큰
- 만료된 경우, 새로운 Access Token을 발급받기 위해 Refresh Token을 사용
Refresh Token
- Access Token의 갱신을 위해 사용되는 토큰
- 지속적으로 인증 상태를 유지할 수 있도록 도와줌 (매번 로그인 할 필요 X)
보안 상의 이유로 Access Token보다 긴 유효 기간 가짐