day91
一.昨日回顾
1 基于jwt的多方式登录
-login
-之前写的处理逻辑都是在视图类中
-这次把逻辑拿到序列化类中validate方法中,在视图函数中不用写逻辑,is_valide
-重点:视图类和序列化类之间交互数据的桥梁context={
}
2 自己定义用户表,登录手动签发token,自己定义的认证类
-认证通过,正常情况下查询得到当前登录用户(访问数据库),但是咱们处于效率的考虑没有查询数据,自己构造了一个User对象
3 jwt中重要的
-几个函数:
-payload=jwt_decode_handler(token) #解码过程
-payload=jwt_payload_handler(user) #加码的过程
-token=jwt_encode_handler(payload) #通过payload得到token
-配置文件:
-token过期时间
4 book的多表增删改查,群增,群删,群查,群改
-群查,单查
-单增,群增:序列化类,初始化的时候,指定many=True,得到的是ListSerializer对象
-单删,群删:合二为一
-单改,群改:
两种方法:
-自行for循环
-重写ListBookSerializer,重写update方法,BookSerializer要跟ListBookSerializer建立联系,list_serializer_class=ListBookSerializer
二.今日内容
1.RABC-基于角色的访问控制
RBAC:是基于角色的访问控制(Role-Based Access Control )
在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理,这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便
# 后台管理中(公司内部系统):使用RBAC,基于角色的访问控制
# 前台(主站)的权限管理:权限,频率,认证 控制
# rbac的表设计
# 最初3张表
用户表 角色表 权限表
# 5张表
用户表 角色表 权限表
用户表和角色表是多对多,需要建立第三张表
角色表和权限表是多对多,需要建立第三张表
# 6张表
用户表 角色表 权限表
用户表和角色表是多对多,需要建立第三张表
角色表和权限表是多对多,需要建立第三张表
用户表和权限表是多对多,需要建立第三张表
# django内置rabc的6张表
auth_user:用户表,扩写
auth_group:角色表(组表)
auth_permission:权限表
auth_user_groups:用户对角色的中间表
auth_group_permissions:角色对权限的中间表
auth_user_user_permissions:用户对权限的中间表
# 公司内部项目,后台管理喜欢用django,内置了rbac6表
权限三表
权限六表
2.xadmin的使用
1 django内置了一个admin,有的人觉得丑,功能不够强大,这群人写了一个叫xadmin的,用来替换admin
2 django的一个app
3 如何使用
-区分1.x和2.x
-1.x:pip3 install xadmin
-2.x:pip3 install git+git://github.com/sshwsfc/xadmin.git&