繁体   English   中英

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

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

我试图找出在哪里/什么时候request.user成为AnonymousUser。 我一直在搜索整个Auth后端,但似乎找不到它。 我看错地方了吗?

我知道,不是经过身份验证的用户的每个用户都将成为AnonymousUser,但是我需要知道我正在构建的某些代码在何处/何时发生。

任何帮助,将不胜感激。

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

“ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM