Django세션을 삭제할 때 사용할 수 있는 메서드는 크게 2개다.
flush
clear
이렇게 나누는 이유는 무엇일까?
- 사용자 경험 관리:
- Flush
- 사용자가 현재 세션을 계속 사용하면서 데이터만 초기화할 필요가 있는 경우
- 예를 들어, 사용자가 로그아웃 후에 로그인 상태만 초기화하고 싶을 때.
- Clear
- 사용자가 완전히 새로운 세션을 시작해야 하는 경우
- 예를 들어, 사용자가 계정을 변경하거나 보안적인 이유로 모든 세션 정보를 삭제해야 할 때 .
- Flush
- 보안 관리:
- Flush
- 세션 데이터만 초기화하면서 클라이언트는 여전히 동일한 세션 식별자를 가지고 있으므로, 클라이언트 사이드에서 관리되는 세션 쿠키가 변경않는다.
- 클라이언트의 세션 상태가 중요한 경우에 사용.
- Clear
- 모든 세션 정보를 삭제하고 새로운 세션 식별자를 클라이언트에게 반환하여 완전히 새로운 세션을 시작하게 한다.
- 세션 탈취와 같은 보안 문제에 대응할 때 유용.
- Flush
어떤 것을 사용해야 더 좋은지에 대한 결정은 상황과 필요에 따라 다르다.
만약 세션 데이터를 유지하면서 상태를 변경하거나 초기화해야 하는 경우에는 flush
를 사용하고, 완전히 새로운 세션을 시작해야 하는 경우에는 clear
를 사용하는 것이 적절하다.
예시 코드 작성법
다음은 메서드를 활요하는 예시코드다.
class LogOut(APIView):
def get(self, request):
request.session.flush()
return render(request, "user/login.html")
728x90
'Django당' 카테고리의 다른 글
(9) Django 인스타그램 클론코딩 로그아웃 구현하기 (1) | 2024.06.24 |
---|---|
(8) Django 인스타그램 클론코딩 로그인 세션(session) 정보 유지하기 (0) | 2024.06.24 |
(7) Django 인스타그램 클론코딩 - 회원가입 로그인 (0) | 2024.06.24 |
pycharm에서 모델 다시 migration하는 법 (0) | 2024.06.24 |
(5) Django 인스타그램 피드 api연결 (0) | 2024.06.24 |