Djangoでブラウザを閉じたらセッションを無効にする

settings.py

SESSION_EXPIRE_AT_BROWSER_CLOSE = True

Set-Cookieヘッダで、sessionidにMax-Ageとexpiresが設定されなくなる


ただこれだと全体的な設定になるのでログイン時にログインを維持するかどうかを、チェックボックスで確認するような場合には対応できない。

そういう場合はset_expiryで設定する


こんな感じ

# ログインを維持する
if request.POST.get('remember'):
    request.session.set_expiry(settings.SESSION_COOKIE_AGE)

# ブラウザを落としたらセッション無効
else:
    request.session.set_expiry(0)