강민철 강사님 필기
토큰기반 로그인, 세션기반 로그인
JWT 기반의 서비스
장고에서 토큰인증을 어떻게 구현할지?
세션과 토큰의 차이점 , 특징 , 필요성에 대해 알아야 한다.
각각의 사용처를 알고 왜 쓰는지 아는 것이 중요
1. Session 인증
2. Token 인증
Django 개발자 뿐 아니라 모든 백엔드 개발자의 기본 소양
1. 인증 - 회원가입, 로그인, 로그아웃, 회원관리, 탈퇴 -- 세션/ 토큰(JWT)
2. DB관리 - ERD, 쿼리셋,
3. Request에 따른 Response 처리 (API 개발) // 실무에선 이걸 더 많이 씀
4. 배포 - 나중에 배울예정
세션인증
모든 유저의 정보와 세션 정보를 서버에서관리
장고 세션이라는 테이블 세션 키 안에 값이 세션 밸류
쿠키 - 세션 아이디, 쿠키안에 세션값이 들어가고
서버에서 DB에서 관리를 하고 , 세션아이디를 쿠키에 저장
세션 아디가 만료되면 1번과정부터 다시 이루어짐
DRF에서도 세션기반가능
DB가 두 개 이상이라면,? 서버가 2개 이상이라면?
매 요청마다 인증을 위해 데이터베이스 질의를 거쳐야 한다.
모든 유저 정보와 세션
TOken 인증 방식
토큰 정보를 서버에 저장하지 않음, 자원 절약 가능
DB에 직접적으로 토근정보를 저장하지 않음, 자원 절약가능
서버는 시크릿키로 암호화된 토큰을 전달하고 사용자는 토큰으로 인증한다,
예시 JWT Json Web Token <<< simple JWT
1. 인증정보를 서버에 전달
2. 인증처리하고 토큰을 생성해서 클라에 전달
3. 클라는 토큰을 브라우저 로컬스토리지에 저장
4. 클라는 이후 이루어지는 요청에 JWT를 이용
5. 서버는 JWT를 검증하여 인증을 처리
5. JWT가 만료되면 토큰을 refresh
JWT 토큰 구조
헤더.페이로드.서명
헤더 . 어떤 물건인지, 배송지 설명
페이로드. 물건내용
서명. 검증하기 위한 정보
토큰 인증방식의 단점
1. 데이터베이스를 이용한 사용자 정보조작이 어려울 수 있음
2. 토큰이 커질 수 있음
3. 토큰이 거의 모든 요청에 대해 전송될 경우 트래픽에 악영향
Access token, refresh token => 클라이언트의 local storage 에 저장 자바스크립트로..
Access token: 요청을 보내기 위한 토큰
Refresh token: 토큰 만료시 재발급을 위한 토큰
토큰 만료 시간은 임의로 설정 가능 ,, 공식문서 읽어보고 실제로 해보기
Django 에서 확인해보기
'코딩 > Django' 카테고리의 다른 글
로그인의 다양한 방식들 (0) | 2023.04.24 |
---|---|
장고 심화내용 이번주에 배운것들 정리 (0) | 2023.04.23 |
장고 (0) | 2023.04.20 |
특강 정리 (0) | 2023.04.19 |
장고 레스트 프레임워크 (0) | 2023.04.19 |