我通过Django身份验证使用了Django内置的登录注销功能, 这是用于登录的以下网址格式 urls.py:
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('',views.home),
path('admin/', admin.site.urls),
path('users/', include('users.urls')),
path('users/', include('django.contrib.auth.urls')),
path('dashboard/', include('dashboard.urls')),
]
我在我的setting.py中添加了以下内容 settings.py:
LOGIN_REDIRECT_URL = 'dashboard:home'
LOGOUT_REDIRECT_URL = 'dashboard:home'
现在我该如何检查用户是否关闭了浏览器并且应该注销? PS:我做了自己的登录和注册HTML页面,并做了我自己的来自AbstractUser的customuser
答案 0 :(得分:1)
您可以像这样监听窗口或标签关闭事件。这种方法需要jQuery和JavaScript。
$(document).ready(function(){
$(window).on("beforeunload", function(e) {
$.ajax({
url: logout_url,
method: 'GET',
})
});
});
答案 1 :(得分:1)
只需将SESSION_EXPIRE_AT_BROWSER_CLOSE
设置为true,以便Django的会话cookie仅对length of the browser session有效。
如果
SESSION_EXPIRE_AT_BROWSER_CLOSE
设置为True,则Django将使用浏览器长度的cookie,这些cookie会在用户关闭浏览器后立即失效。如果您希望人们每次打开浏览器都必须登录,请使用此选项。