Web请求中的认证¶
Django使用会话和中间件来拦截request 对象到认证系统中。
它们在每个请求上提供一个request.user属性,表示当前的用户。如果当前的用户没有登入,该属性将设置成AnonymousUser的一个实例,否则它将是User的实例。
你可以通过is_authenticated()区分它们,像这样:
def main(req):
# Do something for anonymous users.
from django.contrib.auth import authenticate, login
username=req.POST['username']
password = req.POST['password']
user = authenticate(username=username, password=password)
print '-------request.user.is_authenticated():--------------'
print req.user
print req.user.is_authenticated()
print '-------request.user.is_authenticated():--------------'
-------request.user.is_authenticated():--------------
AnonymousUser
False
-------request.user.is_authenticated():--------------