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
浙公网安备 33010602011771号