问题
django.contrib.auth.login
函数成功执行,但会话似乎没有持久。
代码
我正在创建自己的一组函数,以与Django服务器内部的AJAX客户端一起使用。
我在urls.py
中有以下代码:
from django.contrib.auth import authenticate, login
from django.conf.urls import url
from django.http import JsonResponse
import json
def auth_login(request):
username = json.loads(request.body)['username']
password = json.loads(request.body)['password']
user = authenticate(request, username=username, password=password)
if user is not None and user.is_active:
login(request, user)
return JsonResponse({}, status=200)
else:
return JsonResponse({}, status=400)
urlpatterns = [
url(r'auth/login/', auth_login, name='login')
]
详细信息
如上所述,对login()
的调用成功。 request.session
的设置正确,如果可以从auth_login
进行访问,我就可以访问。在后续请求中,request.session
不存在,并且django.contrib.auth.get_user
返回AnonymousUser
。
(可能是相关的)我也在使用看似受欢迎的https://django-tenant-schemas.readthedocs.io/en/latest/。该urls.py
文件位于每个租户的应用程序中,因此用户实际上是在tenantname.hostname.com/tenant/auth/login/
上进行身份验证。
已正确设置承租人的django_session
表。对于每次尝试登录,我都可以看到session_key
,session_data
和expire_data
。
尝试登录后tenantname.hostname.com
的cookie为空。
我还没有其他想法可以尝试使我找到解决方案。
问题
关于此会话为何未真正保存到cookie中的任何想法?
OR
关于我还可以尝试哪些方法的思考,可能会导致我找到解决方案?