如何在django2.0网站上关闭标签页或浏览器时强制注销用户

lmvvr0a8  于 2023-05-08  发布在  Go
关注(0)|答案(3)|浏览(211)

我使用Django内置的登录注销功能,使用Django身份验证,这是以下用于登录www.example.com的url模式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')),

]

我在我的www.example.com中添加了以下内容setting.pysettings.py:

LOGIN_REDIRECT_URL = 'dashboard:home'
LOGOUT_REDIRECT_URL = 'dashboard:home'

现在我如何检查用户是否关闭了他的浏览器,他应该注销?PS:我做了自己的登录和注册HTML页面,并做了自己的customer派生自AbstractUser

ar5n3qh5

ar5n3qh51#

只需将SESSION_EXPIRE_AT_BROWSER_CLOSE设置为true,这样Django的会话cookie就只在浏览器会话的长度内有效。
如果SESSION_EXPIRE_AT_BROWSER_CLOSE设置为True,Django将使用浏览器长度的cookie-一旦用户关闭浏览器,cookie就会过期。如果您希望用户每次打开浏览器时都必须登录,请使用此选项。

unhi4e5o

unhi4e5o2#

您可以像这样侦听窗口或选项卡关闭事件。这种方法需要jQuery和JavaScript。

$(document).ready(function(){         
    $(window).on("beforeunload", function(e) {
        $.ajax({
                url: logout_url,
                method: 'GET',
            })
    });
});
bfrts1fy

bfrts1fy3#

每当关闭浏览器时注销会话
你需要在你的setting.py中输入以下行

关闭浏览器自动注销

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = True

相关问题