Django 로그인 방식

1) 유저가 로그인 정보를 전달해준다. (아이디, 패스워드가 될 수 있지만, 소셜 로그인 정보가 될 수도 있다. 구글, 카카오 등)

2) 장고를 이 정보를 가지고 이 사람이 유효한 유저라면 세션키를 발급후, django_sesion 테이블에 저장한다.

3) 장고는 이 세션 데이터(session data)에 접근할 수 있다.

4) 유저는 단지 세션 키(session_key)만 가지고 있을 뿐이다. 이 키를 가지고 세션 데이터에 접근한다.

django 세션 방식 활성화

Django 세션 엔진 종류

👉 세션을 확인하는 방법은 db가 default이다. 그러나 다른 방법으로 세션을 확인하고 싶다면, 위 이미지처럼 다른 방식을 적어주면 된다.
https://docs.djangoproject.com/en/3.2/topics/http/sessions/#configuring-sessions

session과 jwt의 차이점

jwt : header.payload.secretkey


👉 jwt는 서버가 요청이 들어올때마다 데이터베이스를 확인하지 않아도 된다. 그러나, jwt 데이터에서 시크릿키만 확인할 뿐이고 payload의 정보들이 노출될 위험이 있다. 정보 변경은 jwt에서 payload를 변경할 수 있다. 장고 세션은 session_id는 유지되지만 session_data가 변경이 된다. 장고세션은 렌더링을 해줘야하기 때문에 쿠키를 사용해야한다.

세션 다루기

request가 미들웨어 지나오면서 세션데이터를 세션에 담아준다.


👉 cookie_age는 초단위(기본 2주)

https://docs.djangoproject.com/en/3.2/topics/http/sessions/#using-sessions-in-views


출처 : 패스트캠퍼스 Python & Django로 시작하는 웹 프로그래밍

0개의 댓글