简体   繁体   English

用户在Django中的哪个位置成为AnonymousUser?

[英]Where in Django does a user become an AnonymousUser?

I'm trying find out where/when exactly request.user becomes an AnonymousUser. 我试图找出在哪里/什么时候request.user成为AnonymousUser。 I've been searching through the entire Auth backend but I can't seem find it. 我一直在搜索整个Auth后端,但似乎找不到它。 Am I looking in the wrong place? 我看错地方了吗?

I'm aware that every user that isn't an Authenticated user becomes an AnonymousUser, but I need to know where/when this happens for some code I'm building. 我知道,不是经过身份验证的用户的每个用户都将成为AnonymousUser,但是我需要知道我正在构建的某些代码在何处/何时发生。

Any help would be appreciated. 任何帮助,将不胜感激。

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

一切都在django.contrib.auth.middleware模块中-有关详细信息,请参见: https : //github.com/django/django/blob/master/django/contrib/auth/middleware.py#L49

logout method in "contrib/auth/ init .py" also affect AnonymousUser() to request.user, look at the code below: “ contrib / auth / init .py”中的注销方法也会影响AnonymousUser()到request.user,请看下面的代码:

if hasattr(request, 'user'):
    from django.contrib.auth.models import AnonymousUser
    request.user = AnonymousUser()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django request.user在第三方重定向后成为AnonymousUser - Django request.user become AnonymousUser after third party redirect 获取用户在Django上返回“ AnonymousUser” - get user returns “AnonymousUser” on django 注册账号后Django无法识别用户*AnonymousUser* - Django can't identify the user after registering an account *AnonymousUser* 无法使用django rest框架进行身份验证(request.user = AnonymousUser) - Not able to authenticate using the django rest framework (request.user = AnonymousUser) 调用auth.login()后,Django用户仍然是AnonymousUser - Django user is still AnonymousUser after calling auth.login() Django oauth2 request.user返回AnonymousUser - Django oauth2 request.user returns AnonymousUser 'AnonymousUser' object 在 django 上不可迭代 - 'AnonymousUser' object is not iterable on django 解析 Django 中的 AnonymousUser - Resolve AnonymousUser in Django 在Django中使用all-auth接收到user_logged_in信号后,将用户设置为AnonymousUser - User is set to AnonymousUser after a user_logged_in signal is received in Django with all-auth 第一个 django rest api 调用返回 request.user 作为 AnonymousUser 但进一步调用返回正确的用户 - First django rest api call returns request.user as AnonymousUser but further calls return proper user
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM