2021.12.17 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #6 (이메일로 로그인 하기 기능 구현)
이번 게시글에서는 로그인이 이뤄지는 과정과 로그인의 상태가 어떻게 유지되는지에 대해 작성해보겠습니다.
로그인이 이뤄지는 과정은 아래와 같습니다.
1. 유저가 아이디와 비밀번호를 작성하고 로그인을 클릭합니다.
2. 서버는 그 기록을 받아 아이디와 비밀번호가 일치하는지를 확인합니다.
3. 일치할 시 유저에 대한 세션을 생성합니다.
4. 생성된 세션을 Login Response를 줄 때 포함해서 클라이언트에게 전송합니다.
5. 그러면 브라우저는 Session을 Cookie에 저장합니다.
5. 그 후 브라우저는 이 사이트에서 Requests를 보낼 때마다 Cookie도 같이 전송합니다.
6. 서버는 그 Cookie의 Session을 확인하여 일치하는 유저를 확인합니다.
그리고 만약 로그아웃을 하거나, 쿠키의 유효시간이 되면 브라우저의 쿠키는 삭제됩니다.
로그인 기억하기 ( 유지시키기)
유저가 웹페이지를 닫아도 로그인을 유지시키기 위해서는 ACCOUNT_SESSION_REMEMBER 를 사용하면 됩니다.
기본 값은 유저에게 물어보는 것으로 만약 True로 설정할 시 웹페이지를 닫아도 로그인을 유지시킬 수 있습니다.
또한 SESSION_COOKIE_AGE를 사용하면 cookie가 저장되는 유효시간을 직접 지정해줄 수 있습니다.
defualt 값은 14일로, int형태로 숫자를 입력해주는데 숫자는 초로 입력됩니다.
# settings.py
ACCOUNT_SESSION_REMEMBER = True # 브라우저를 닫아도 세션기록 유지! [ 로그인 안풀리게 ! ]
SESSION_COOKIE_AGE = 3600 # 쿠키를 한시간만 저장 [ 세션 ]
이때 주의해야할점은 사용자가 직접 로그아웃 버튼을 클릭해 로그아웃을 할 경우에는 서버에 저장된 Session도 삭제되지만 유효시간이 만료된 cookie의 경우에는 서버에 Session이 그대로 남아있습니다.
이렇게 많은 양의 Seesion 정보가 서버에 남을 경우에는 메모리도 많이 차지하고 성능에도 영향을 끼칠 수 있습니다.
이럴경우엔 직접 서버에 저장된 Session 정보를 지워주는 것이 좋습니다.
장고에선 이걸 python manage.py clearsessions 명령어로 Session을 지울 수 있습니다.
이를 자동화 하여 사용하거나, 수동적으로 실행해주면 됩니다.
'Study > Django' 카테고리의 다른 글
[Django] 장고 유저 기능 구현하기 #9 ( 회원가입 정보 유효성 검사) (0) | 2021.12.19 |
---|---|
[Django] 장고 유저 기능 구현하기 #8 (닉네임 필드 추가하기) (0) | 2021.12.18 |
[Django] 장고 유저 기능 구현하기 #6 (이메일로 로그인 하기 기능 구현) (1) | 2021.12.17 |
[Django] 장고 유저 기능 구현하기 #5 ( 페이지에서 로그인 로그아웃 구현) (1) | 2021.12.15 |
[Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경) (0) | 2021.12.15 |