DRF修改权限、用户认证方式

简介: 修改权限、用户认证方式在settings中全局配置REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.

修改权限、用户认证方式

  • 在settings中全局配置

    REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'rest_framework.authentication.BasicAuthentication',
            'rest_framework.authentication.SessionAuthentication',
        ]
    }
  • 基于每个视图集进行配置

    from rest_framework.authentication import SessionAuthentication, BasicAuthentication
    from rest_framework.permissions import IsAuthenticated
    from rest_framework.response import Response
    from rest_framework.views import APIView
    
    class ExampleView(APIView):
        authentication_classes = [SessionAuthentication, BasicAuthentication]
        permission_classes = [IsAuthenticated]
    
        def get(self, request, format=None):
            content = {
                'user': unicode(request.user),  # `django.contrib.auth.User` instance.
                'auth': unicode(request.auth),  # None
            }
            return Response(content)
  • 配合@api_view装饰器基于函数一起使用

    from rest_framework.decorators import permission_classes, authentication_classes
    class ExampleView(APIView):
    
        @api_view(['GET'])
        @authentication_classes([SessionAuthentication, BasicAuthentication])
        @permission_classes([IsAuthenticated])
        def example_view(request, format=None):
            content = {
                'user': unicode(request.user),  # `django.contrib.auth.User` instance.
                'auth': unicode(request.auth),  # None
            }
            return Response(content)
  • 配合@action装饰器基于函数一起使用

    
    class ExampleView(APIView):
    
        @action(methods=['get'], detail=False, url_path='url', url_name='url', permission_classes=(IsAuthenticated,), authentication_classes=(SessionAuthentication, BasicAuthentication))
        def example_view(request, format=None):
            content = {
                'user': unicode(request.user),  # `django.contrib.auth.User` instance.
                'auth': unicode(request.auth),  # None
            }
            return Response(content)

参考链接:


相关文章
|
10月前
|
人工智能 JavaScript 前端开发
你可能不敢想象,2025 年,jQuery要更新到 4.0 了
jQuery,由 John Resig 于2006年创建,曾帮助无数开发者简化DOM操作、事件处理和动画效果。历经19年,即便在React、Vue等现代框架盛行的今天,jQuery仍在更新。最新版4.0.0 Beta已推出,修复问题、提升性能并加入新特性,展示了其适应时代的能力。jQuery不仅是技术的坚持,更是文化和精神的传承,见证了众多开发者的青春。
477 11
|
10月前
|
人工智能 自然语言处理 数据可视化
校企合作|TsingtaoAI携手潍坊学院,共建AI驱动的党建信息化系统
TsingtaoAI与潍坊学院近日达成合作,正式签署《人工智能党建信息化系统开发》技术开发合同,计划在未来两年内联合开发一套集党员教育、党务管理、党建活动智能化以及数据可视化于一体的智能党建系统。本次合作将充分结合TsingtaoAI在AI大模型领域的技术优势和潍坊学院的学术资源,为推动党建工作的数字化、智能化和高效化注入新的动力。
237 10
|
SQL 分布式计算 分布式数据库
OceanBase是什么
OceanBase是什么【8月更文挑战第11天】
886 61
|
运维 数据挖掘 OLAP
阿里云Hologres:一站式轻量级OLAP分析平台的全面评测
在数据驱动决策的今天,企业对高效、灵活的数据分析平台的需求日益增长。阿里云的Hologres,作为一站式实时数仓引擎,提供了强大的OLAP(在线分析处理)分析能力。本文将对Hologres进行深入评测,探讨其在多源集成、性能、易用性以及成本效益方面的表现。
540 8
|
人工智能 人机交互 语音技术
让大模型更懂你的情绪——通义实验室与中科院自动化所联合开源中英双语共情语音对话模型BLSP-Emo
BLSP-Emo模型展示了情感智能在人机交互中的重要性,未来的多模态模型将更加注重情感的识别和表达,使得机器能够更加准确地理解和回应用户的情感状态,甚至生成富有情感的语音反馈。同时,BLSP-Emo展示了将副语言信号对齐到大语言模型语义空间的可能性,我们期待着更加人性化、更具有共情力的对话交互模型的出现。
RPA数字员工:降本增效的智能利器
【1月更文挑战第6天】RPA数字员工:降本增效的智能利器
464 1
RPA数字员工:降本增效的智能利器
|
Java Python
如何设置代理ip服务器地址
如何设置代理ip服务器地址
520 0
|
存储 定位技术 开发工具
商业模式画布
商业模式画布
540 0
|
消息中间件 存储 SQL
RocketMQ 全链路灰度探索与实践
当链路请求中存在消息的时候,如何实现全链路灰度?一起来看看消息灰度的设计与实现吧!
804 0
RocketMQ 全链路灰度探索与实践
|
存储 弹性计算 运维
阿里云电脑具体价格表_不同配置报价
阿里云电脑具体价格表_不同配置报价,阿里云无影云电脑配置具体价格表,无影云桌面4核8G企业办公型云电脑可以免费使用3个月,无影云电脑地域不同价格不同,无影云电脑价格是由云桌面配置、云盘价格、互联网访问带宽价格、AD Connector 价格、桌面组共用桌面session 价格等费用组成
下一篇
oss云网关配置