0

User 模型上 on函数的文档如下:is_authenticated

is_authenticated
只读属性,始终为 True(相对于 AnonymousUser.is_authenticated,始终为 False)。这是一种判断用户是否已通过身份验证的方法。这并不意味着任何权限,也不会检查用户是否处于活动状态或具有有效会话。尽管通常您会检查 request.user 上的此属性以了解它是否已由 AuthenticationMiddleware(代表当前登录的用户)填充,但您应该知道该属性对于任何 User 实例都是 True。

from django.conf import settings
from django.shortcuts import redirect

def my_view(request):
    if not request.user.is_authenticated:
        return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))

is_authenticated 说它不检查用户是否有有效的会话,这在技术上不是错误的,因为在每个请求中,会话表都会根据客户端会话 cookie 检查,并且只有在匹配时才返回用户?否则,如果客户端不发送用户名、密码等身份验证详细信息,您将无法返回用户?

4

0 回答 0