san*_*lto 5 authentication django session
我最近在我的django项目中实现了一个简单的更改密码视图.问题是出于安全原因应该销毁旧会话.在不要求用户再次登录的情况下,这样做的最佳方法是什么.
我想我可以注销/登录他/她,如下所示:
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout
@login_required
def change_password(request):
# My stuff
request.user.set_password(new_password)
request.user.save()
# I need this:
logout(request)
login(request,request.user)
Run Code Online (Sandbox Code Playgroud)
但我认为这不是最好的主意.你怎么看?
还有另一种方法吗?
我错过了什么吗?(我的意思是,这是安全的)
django 在注销时清除会话,这样你就可以了:
https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.logout
当您调用 logout() 时,当前请求的会话数据将被完全清除。所有现有数据都将被删除。这是为了防止其他人使用同一 Web 浏览器登录并访问先前用户的会话数据。