auth模块要用就用它的全套功能,否则可能会报错。
from django.contrib import auth


# 校验用户名和密码是否正确,auth模块会自动加密密码再去auth_user表中对比。这个user_obj返回值是当前的用户对象。
user_obj = auth.authenticate(request,username=username,password=password)
if user_obj:
  # 保持用户登录状态 # 请求来时携带的随机字符串会去django_session表中匹配,匹配上了对应的数据后 就封装到request.user里
  # 只要执行了login方法,在任意位置都可通过request.user获取到当前登录的用户对象
  auth.login(request,user_obj)


def userinfo(request):
  print(request.user) # 获取用户对象,
  # 判断当前用户是否登录没登录则是匿名用户AnonymousUser
  print(request.user.is_authenticated())
  # 密码是密文(加密了的) 
  # print(request.user.password)
  return HttpResponse('from userinfo')

登录装饰器
from django.contrib.auth.decorators import login_required

局部配置 @login_required(login_url='/lg/')

全局配置,LOGIN_URL = '/lg/'
然后装饰器就可以写成@login_required

 

posted on 2021-07-18 09:32  孟玉  阅读(45)  评论(0)    收藏  举报