gpt4 book ai didi

Django 自定义登录 View -> session 不持久

转载 作者:行者123 更新时间:2023-12-03 09:43:07 27 4
gpt4 key购买 nike

环境:
Django 1.9.6
python 3.5
我为用户和权限管理制作了一个自定义用户模型。
现在,我的登录 View 有问题,我不明白。

def login_user(request):
if request.POST:
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
# User Object is fine...
if user.is_active:
login(request, user)
# Login passes -> request.user is OK and request.session _session_cache is filled corretly..
if 'next' in request.POST.keys():
redirect_to_next = request.POST['next']
else:
redirect_to_next = settings.LOGIN_REDIRECT_URL
return HttpResponseRedirect('/auth/main/')

redirect_to_next = request.GET.get('next','/')
return render(request, 'authentication/login.html', {'form': LoginForm, 'next' : redirect_to_next} )
在我被重定向到另一个页面后, session 被删除......并且 request.user = AnonymousUser。
这是我调用 login() 方法后 session 变量的输出...
{print(request.session.__dict__)
'modified': True, '_SessionBase__session_key': 'bn8qxxxxx', 'serializer': <class 'django.core.signing.JSONSerializer'>, 'model': <class 'django.contrib.sessions.models.Session'>, 'accessed': True, '_session_cache': {'_auth_user_hash': 'f5fxxxxxx', '_auth_user_id': '3f5b3fd1-XXXXXX', '_auth_user_backend': 'django.contrib.auth.backends.ModelBackend'}}
然后我被重定向到另一个页面......
{print(request.session.__dict__)
{'modified': False, '_SessionBase__session_key': None, 'serializer': <class 'django.core.signing.JSONSerializer'>, 'accessed': False}
有人能帮我吗?
谢谢
BR

最佳答案

在 settings.py 中将 SESSION_COOKIE_SECURE 设置为 False
以下堆栈溢出链接可能对您有所帮助,
Session data lost after a HttpResponseRedirect

关于Django 自定义登录 View -> session 不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128390/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com