Django 인증방식 (크게 3가지)
- 세션인증
- 토큰인증
- JWT와 같은 3rd 파티 인증
DRF Token과 JWT 차이점
- DRF TOKEN
- 토큰 하나로 모든 사용자 세션 처리
- 토큰에 타임 스탬프 불포함
- JWT Token
- 세션 하나당 토큰 하나 발급
- 토큰마다 만료시간이 정해진 타임스탬프 포함
DB접근 등 처리과정 차이
-
DRF TOKEN
- 사용자 계정과 토큰 관계를 통해 DB 접근
- 사용자 계정 상태 검사
- 사용자 인증
-
JWT TOKEN
- 토큰 디코드 (객체 정보 수신)
- 토큰 타임스탬프 검사 (만료여부)
- 토큰 내 페이로드에 포함된 사용자 ID로 DB접근
- 사용자 계정 상태 검사
- 사용자 인증
장/단점
- DRF TOKEN
- 장점
DB 토큰 값을 통해 강제 로그아웃 가능
한번 발급한 값을 계속해서 사용하기에 보안엔 취약하나 관리가 편함
- 단점
모든 요청이 DB 검색으로 이어짐 (토큰 확인)
모든 세션을 하나의 토큰으로 처리한다.
- JWT TOKEN
- 장점
토큰에 타임스탬프가 있어 기한이 정해져있다.(보안)
무효한 토큰은 DB에 접근할 수 없다.
- 단점
DB 추적없이는 토큰 회수 불가
한번 토큰이 발급이 되면 누구나 그 토큰으로 접근할 수 있다.