auth模块

方法:

1.比对用户名和密码

user_obj = auth.authenticate(request,username=username,password=password)

print(user_obj)   # 用户对象eric   数据不符合则返回None

print(user_obj.username)  # eric

print(user_obj.password)  #  密码password

 

2.保存用户状态

auth.login(request,user_obj) # 类似于设置session的功能request.session[key] = user_obj

# 保存用户状态后,可以随时通过request.user获取到当前登录的用户对象

 

3.判断当前用户是否登录

request.user.is_authenticated()

 

4.获取当前登录用户

request.user

 

5.校验用户是否登录的装饰器

from django.contrib.auth.decorators import login_required

# 局部配置

@login_required(login_url='/login/')  # 参数为自己设置的跳转页面

# 全部配置

LOGIN_URL = '/login/'

 

6.密码处理

# 比对原密码

request.user.check_password(old_password)

# 修改密码

request.user.set_password(new_password)

request.user.save()

 

7.注销

auth.logout(request)

 

8.注册

# 操作auth_user表写入数据

User.objects.create(username=username,password=password) # 写入数据,但是数据库保存的密码是明文的

# 创建普通用户

User.objects.create_user(username=username,password=password)

# 创建超级用户

User.objects.create_superuser(username=username,email='aaa@gmail.com',password=password)  # 邮箱必填

 

posted @   EricYJChung  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示