장고 쿠키 & 세션

Sam (토론 | 기여)님의 2022년 9월 6일 (화) 10:24 판 (→‎보안. 세션유효기간.)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요편집

로그인 따위는 세션, 쿠기에서 관리한다. 이에 대한 지식.

2 세션편집

2.1 보안. 세션유효기간.편집

request.session['이름'] = 값

del request.session['이름']

엑셀 계산이나 딥러닝 등의 연산은 세션에 적당히 저장해 두었다가 지우는 방식을 주로 사용하는 듯하다.(유지시간도 설정할 수 있으니)

유효시간 설정은 어떻게 할까..?

3 쿠키편집

장고에선 기본적으로 가벼운 정보를 쿠키에 저장한다. 그리고 유효기간을 설정해 관리한다.

3.1 쿠키 만들기편집

과정 코드 비고
다음페이지 지정 response = redirect('membership:confirm_sending') # 다음에 보낼 페이지를 지정해 응답을 받아야 한다.(그래야 저장됨)
쿠키 저장 response.set_cookie('verification_code', verification_code, max_age=300) # 사용자의 쿠키에 검증코드 저장 인자는

'이름', 값, max_age=유효기간(초)

형태로 집어넣는다.

디폴트 유효기간 설정은 settings.py의 SESSION_COOKIE_AGE에 초단위의 기간을 설정하면 된다.

3.2 쿠키 다루기편집

request.COOKIES.get('이름')

response = redirect('url')  # 이동할 곳

response.set_cookie('이름', 값)  # 이런 방식으로 쿠키를 만들거나 지워야 한다.

response.delete_cookie('이름')

4 유의점편집

함수의 끝인 return에서 redirect 주소(response)를 반환해주어야 쿠키에 데이터가 반영이 된다. 주소만 제대로 되어 있다면 request.META.get('HTTP_REFERER', '/') 형태로 입력해도 쿠키는 무사히 반영된다.