我正在尝试找出确切请求的位置/时间。用户成为AnonymousUser。我一直在搜索整个Auth后端,但我似乎无法找到它。我在找错了地方吗?
我知道每个不是Authenticated用户的用户都会成为AnonymousUser,但我需要知道我正在构建的某些代码在何处/何时发生。
任何帮助都将不胜感激。
答案 0 :(得分:5)
contrib\auth\__init__.py:80
def get_user(request):
from django.contrib.auth.models import AnonymousUser
try:
user_id = request.session[SESSION_KEY]
backend_path = request.session[BACKEND_SESSION_KEY]
backend = load_backend(backend_path)
user = backend.get_user(user_id) or AnonymousUser()
except KeyError:
user = AnonymousUser()
return user
答案 1 :(得分:4)
全部在django.contrib.auth.middleware
模块中 - 请查看此处:https://github.com/django/django/blob/master/django/contrib/auth/middleware.py#L49了解详情。
答案 2 :(得分:0)
“ contrib / auth / init .py”中的登出方法也会影响AnonymousUser()来请求。用户,请看下面的代码:
if hasattr(request, 'user'):
from django.contrib.auth.models import AnonymousUser
request.user = AnonymousUser()