我了解到您可以将以下代码行放入settings.py中,以使浏览器关闭时的用户会话过期:
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
我已经实现了它,但是当我关闭浏览器时,我可以重新打开它,并且用户仍然登录。对此有任何想法吗?
谢谢!
答案 0 :(得分:0)
某些浏览器(例如chrome)允许用户在重新打开的情况下进行导航,但是您可以尝试使用set_expiry() 参见:https://docs.djangoproject.com/en/2.0/topics/http/sessions/
答案 1 :(得分:0)
首先尝试这样做,因为建议这样做:
将这些配置放入您的settings.py
:
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_COOKIE_AGE = 600 # set just 10000 seconds to test
SESSION_SAVE_EVERY_REQUEST = True
如上所述,您可以使用set_expiry(value)
如果value
为0,即request.session.set_expiry(0)
,则当您关闭浏览器时,您的会话将被注销。
就像我的代码段一样,我试图每5分钟注销一次用户,但您将其设置为0:
views.py
def login_user(request):
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
request.session.set_expiry(300)
login(request, user)
messages.success(request, 'Your password was successfully updated!')
return redirect('blazon:index')
# return render(request, 'blazon/index.html', {'projects': projects})
else:
return render(request, 'blazon/login.html', {'error_message': 'Your account has been disabled'})
else:
return render(request, 'blazon/login.html', {'error_message': 'Invalid login'})
return render(request, 'blazon/login.html')
答案 2 :(得分:0)
转到您的settings.py,然后在文件中添加以下常量
switch intents[INPUT_STRING] {
case message:
print("Message type intent detected")
case weather:
print("weather type intent detected")
case music:
print("music type intent detected")
case none:
print("undefined intent detected")
}
您将以闲置状态/空闲状态注销5秒钟。