Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中,用户在哪里变成匿名用户?_Python_Django_Authentication - Fatal编程技术网

Python 在Django中,用户在哪里变成匿名用户?

Python 在Django中,用户在哪里变成匿名用户?,python,django,authentication,Python,Django,Authentication,我正在尝试找出request.user成为匿名用户的确切位置/时间。我一直在搜索整个Auth后端,但似乎找不到它。我找错地方了吗 我知道每个不是经过身份验证的用户都会变成匿名用户,但我需要知道我正在构建的某些代码在何处/何时发生这种情况 任何帮助都将不胜感激。都在django.contrib.auth.middleware模块中-查看此处:了解详细信息。都在django.contrib.auth.middleware模块中-查看此处:了解详细信息。contrib\auth\\uu init\uu

我正在尝试找出request.user成为匿名用户的确切位置/时间。我一直在搜索整个Auth后端,但似乎找不到它。我找错地方了吗

我知道每个不是经过身份验证的用户都会变成匿名用户,但我需要知道我正在构建的某些代码在何处/何时发生这种情况


任何帮助都将不胜感激。

都在
django.contrib.auth.middleware模块中-查看此处:了解详细信息。

都在
django.contrib.auth.middleware模块中-查看此处:了解详细信息。

contrib\auth\\uu init\uuuuuuuuuuuuy: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

contrib\auth\\uuuuu 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
“contrib/auth/init.py”中的注销方法也会影响匿名用户()请求。用户,请查看以下代码:

if hasattr(request, 'user'):
    from django.contrib.auth.models import AnonymousUser
    request.user = AnonymousUser()
“contrib/auth/init.py”中的注销方法也会影响匿名用户()请求。用户,请查看以下代码:

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


尝试将assert False添加到AnonymouUser的构造函数中,看看回溯是怎么说的。尝试将assert False添加到AnonymouUser的构造函数中,看看回溯是怎么说的。在此之前将执行中间件-这只是一个帮助函数,魔法不会在这里发生:)我查看了您的源代码。返回惰性对象。这就是魔法真正发生的地方。好吧,你知道,这个函数不会自己执行。问题是:request.user在何时何地成为匿名用户。至于什么时候,它在中间件中发生。我不认为放弃投票伙伴有什么意义:)@bx2我一直在寻找上面两种答案的结合#1其中user=AnonymousUser(),然后#2最终决定将哪个用户设置为。第86行:
user=backend.get\u user(user\u id)或AnonymousUser()
中间件将在此之前执行-这只是一个帮助函数,魔法不会在这里发生:)我查看了您的源代码。返回惰性对象。这就是魔法真正发生的地方。好吧,你知道,这个函数不会自己执行。问题是:request.user在何时何地成为匿名用户。至于什么时候,它在中间件中发生。我不认为放弃投票伙伴有什么意义:)@bx2我一直在寻找上面两种答案的结合#第86行:
user=backend.get\u user(user\u id)或AnonymousUser()
您的源调用我的源L16:
request.user=SimpleLazyObject(lambda:get\u user(request))
并返回一个调用我的惰性对象。我的设置实际上是匿名用户。律师。为了它的价值,我也想要这个。谢谢你的帮助。@Thomas:哈哈-可以说,他们两个都不是我们的目标-这不是比赛-我只是想帮忙:)干杯!打得好,先生!帽子提示对不起,如果我玩stackunderflow太有竞争力了。它就像终极游戏秀,但没有奖品:(你的源代码调用我的源代码L16:
request.user=SimpleLazyObject(lambda:get_user(request))
并返回一个名为My的惰性对象。My实际上设置了匿名用户。Lawyered。我也+1’d这个,这是值得的。谢谢你的帮助。@Thomas:哈哈-可以说他们都不是我们的对象-这不是竞争-我只是想帮助:)干杯!打得好,先生!帽子提示对不起,如果我玩stackunderflow太有竞争力了。这就像终极游戏秀,但没有奖品:(