第四阶段:DRF day81 DRF--DRF中三大认证中认证模块和权限模块详解

目录

一、昨日内容复习

""" 视图家族
1、View:将请求方式与视图类的同名方法建立映射,完成请求响应
2、APView:
    1)View的所有功能;
    2)重写as_view禁用csrf认证;
    3)重写dispatch:请求、响应、渲染、异常、解析、三大认证
    4)多了一堆类属性,可以完成视图类的局部配置

3、GenericAPIView:
    1)APView的所有功能
    2)三个方法:get_object()、get_queryset()、get_serializer()
    3)三个属性:queryset、serializer_class、lookup_url_kwarg
    
4、mixins包:
    1)五大工具类:RetrieveModelMixin, ListModelMixin, CreateModelMixin, UpdateModelMixin, DestroyModelMixin
    2)六大工具方法:retrieve、list、create、update、partial_update、destroy
   
5、generics包:
    1)一堆mixins工具类与GenericAPIView视图基类组合
    
6、ViewSetMixin
    1)重写as_view(),完成请求方式与视图方法的自定义映射
        as_view({'get': 'my_get'})
        
7、视图集基类:
    ViewSet(ViewSetMixin, APIView):可以自定义映射关系的APIView
    GenericViewSet(ViewSetMixin, GenericAPIView):可以自定义映射关系的GenericAPIView
    
8、常用Model视图集
    1)ModelViewSet(mixins.CreateModelMixin,
                   mixins.RetrieveModelMixin,
                   mixins.UpdateModelMixin,
                   mixins.DestroyModelMixin,
                   mixins.ListModelMixin,
                   GenericViewSet)
        某一资源的六大操作视图集
        
    2)ReadOnlyModelViewSet(mixins.RetrieveModelMixin,
                           mixins.ListModelMixin,
                           GenericViewSet)
        某一资源的只读操作视图集
"""

二、今日内容总结

"""
1、认证、权限、频率的工作原理
基础哪个类、重写哪个方法、方法的实现体要完成什么事

系统的认证类:都很少使用,常用的前后台分类认证 - jwt(json web token)

系统的权限类:
AllowAny:不限制
IsAuthenticated:必须是登录用户
IsAdminUser:必须是后台用户
IsAuthenticatedOrReadOnly:读操作无限制,其他操作需要登录

2、自定义User表
继承AbstractUser、配置AUTH_USER_MODEL、配置admin(UserAdmin密文操作密码)

3、一个需要登录后的群查接口UserList、一个获取LoginAPIView成功的Token

4、LoginAPIView要根据请求的usr、pwd交给序列化类,全局校验得到 user、token
    签发token的算法
    
5、自定义认证类,校验token
    校验token的算法
    
6、自定义权限类
    指定权限规则

7、登录接口必须完成所有认证权限局部禁用,权限接口在权限类中局部配置自定义认证权限类(或在全局配置)
"""

三、今日练习

练习A

"""
1、整理今天所学知识点
    核心:签发token和校验token算法,自定义认证类和权限类,视图类配置自定义认证类和权限类

2、新建项目,实现LoginAPIView,完成账号密码登录签发token给前台

3、基于User表,写一个 个人中心接口(这个接口可以访问用户所有信息,密码就用八个#填充),该接口需要登录就可以访问(自定义认证类完成token校验,权限类系统有提供),不同的用户访问得到的是该用户的详情信息
"""

B作业

"""
1、基于A作业需求,写一个修改用户密码的接口,修改密码后,用新密码测试登录
"""

猜你喜欢

转载自www.cnblogs.com/foreversun92/p/11937699.html