두가지 인증 시스템 정리
세션 기반 인증 | 토큰 기반 인증 |
---|
서버 측에서 로그인 상태 기억 | 사용자 측에서 로그인 상태 기억 |
서버 확장이 용이하지 않음 | 서버 확장이 용이함 |
세션 기반 인증
- 사용자 로그인
- 서버는 세션 저장소에서 사용자 정보 조회, 세션 id 발급
- 발급된 세션 id 브라우저 쿠키에 저장
- API 요청시 서버는 세션 저장소의 세션 조회 및 로그인 여부 결정
- 작업 처리 및 응답
❖ 서버 인스턴스가 여러개라면 모든 서버가 세션을 공유를 해야함
토큰 기반 인증
- 사용자 로그인
- 서버는 사용자 로그인 정보와 증명 서명을 지닌 토큰 발급
- API 요청시 발급받았던 토큰과 함께 요청
- 서버는 토큰이 유효한지 검사하여 작업 처리 및 응답
❖ 토큰: 로그인 이후 서버가 만들어주는 문자열로 사용자 로그인 정보와 서버에서 발급되었다는 증명 서명을 포함
❖ 서명: 해싱 알고리즘을 통해 만들어짐, 주로 HMAC SHA256 혹은 RSA SHA256 알고리즘 사용됨
참고
- 리액트를 다루는 기술들 - 23장 JWT를 통한 회원 인증 시스템 구현하기