๐[Django] django-session-timeout์ด ๋ญ์ง?
django-session-timeout?
django-session-timeout
์ ์ธ์
์ ์ข
๋ฃํ ์ ์๋ ์๊ฐ์ ์ง์ ํ ์ ์๋ ํจํค์ง์ด๋ค.
- ๋ก๊ทธ์ธ์ ์งํํ๊ณ , ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ์๋์ผ๋ก ๋ก๊ทธ์์ ๋๋๋ก
ํ ๋ฒ ๋ก๊ทธ์ธํ ํ, ํด๋น ๊ณ์ ์ด ์๋์ผ๋ก ๋ก๊ทธ์์์ด ๋์ง ์๋๋ค๋ฉด ๋ณด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์๋ ์๋ค.
๊ทธ๋์ ๋ง์ ์๋น์ค๋ค์ ์ฌ์ฉ์์ ๋ง์ง๋ง ํ๋ ์์ ์ ๊ธฐ์ค์ผ๋ก ์ผ์ ์๊ฐ๋์ ํ๋์ด ์์ผ๋ฉด ์ธ์ ์ ๋ง๋ฃ์ํจ๋ค.
django์์๋ ์ด ํจํค์ง ์ธ์๋ django ์์ฒด์์ ์ ๊ณตํ๋ django.contrib.sessions
์ ์ฌ์ฉํ ์๋ ์๋ค!
django-session-timeout ์ค์นํ๊ธฐ
$ pip install django-session-timeout
์ ๋ช
๋ น์ด๋ฅผ ํตํด ํจํค์ง๋ฅผ ๋ค์ด๋ฐ๊ณ , ์๋์ ๊ฐ์ด MIDDLEWARE_CLASSES
์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค.
MIDDLEWARE_CLASSES = [
# ...
'django.contrib.sessions.middleware.SessionMiddleware',
'django_session_timeout.middleware.SessionTimeoutMiddleware',
# ...
]
settings.py์ ์ธ์ ๊ฐ ์ง์ ํ๊ธฐ
SESSION_EXPIRE_SECONDS
SESSION_EXPIRE_SECONDS = 3600
- SECONDS์ธ ๋งํผ ์ด(sec)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค์
- ์์ ๊ฐ์ด 3600์ ์ง์ ํ๋ฉด, 1์๊ฐ์ ์ธ์ ์๊ฐ์ ์ค์
SESSION_EXPIRE_AFTER_LAST_ACTIVITY
SESSION_EXPIRE_AFTER_LAST_ACTIVITY = True
LAST_ACTIVITY
์ธ ๊ฒ ์ฒ๋ผ ์ฌ์ฉ์์ ๋ง์ง๋ง ํ๋ ์์ ์ ์๋ฏธ- True๋ก ์ง์ ํ์ผ๋, ์ฌ์ฉ์์ ๋ง์ง๋ง ํ๋ ์์ ์ ๊ธฐ์ค์ผ๋ก ์ธ์ ์ ์ด๊ธฐํ ํ๋ค๋ ์๋ฏธ
- ์ด ์ต์ ์ ์์ฑํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ผ๋ก 1์๊ฐ ํ์ ์ข ๋ฃํ๊ฒ ๋จ
- ๊ธฐ๋ณธ์ผ๋ก๋ 1์ด๋ก ์ง์ ๋์ด์๊ณ , 1์ด ๋ค์ ๋ค์ ์ธ์ ์ ์์ํจ
SESSION_EXPIRE_AFTER_LAST_ACTIVITY_GRACE_PERIOD
SESSION_EXPIRE_AFTER_LAST_ACTIVITY_GRACE_PERIOD = 60
SESSION_EXPIRE_AFTER_LAST_ACTIVITY
์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ด 1์ธ๋ฐ, ์ ์ต์ ์ ์ง์ ํ๋ฉด 60์ด๋ก ์ง์ ํ ์ ์์
SESSION_TIMEOUT_REDIRECT
SESSION_TIMEOUT_REDIRECT = 'redirect url'
- ์ธ์ ์ด ์ข ๋ฃ๋ ํ, ์ด๋ํ url์ ์์ฑ
- ๋ก๊ทธ์ธ ํ๋ฉด ํน์ ๋ฉ์ธ ํ๋ฉด์ ์ฃผ๋ก ์ค์ ํจ
๋๊ธ๋จ๊ธฐ๊ธฐ