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)

参考链接:


相关文章
|
9月前
|
传感器 人工智能 边缘计算
智慧养老新基建:康养机器人核心技术解析与主流产品选型指南
随着老龄化加剧,康养机器人正从概念走向落地,融合SLAM导航、多模态感知、医疗级数据交互、大模型语音理解与康复评估技术,实现健康监测、跌倒预警、情感陪伴等多元功能。本文解析五大核心技术,并推荐猎户星空、优必选、新松、傅利叶及ElliQ等代表性产品,涵盖居家、机构、康复与情感场景,助力智慧养老科学选型与应用落地。(238字)
|
5月前
|
人工智能 安全 Java
IDEA 集成 GitHub Copilot 指南:解锁 10 倍编码效率的全链路实战
GitHub Copilot是GitHub与OpenAI联合推出的AI编程助手,基于代码优化的大语言模型,支持自然语言注释生成代码、重构优化、单元测试自动生成及Bug修复。本文详解其核心原理、IDEA集成配置、实战示例及版权、安全、依赖等避坑指南。
1963 1
|
Web App开发 人工智能 JSON
深度测评:DeepSeek 对话导出工具 Top 3,公式不乱码、排版零折损的终极方案
本文为AI技术博主推荐三款高效导出DeepSeek对话的工具:专为iOS/macOS设计的App,支持多格式且完美保留代码高亮与公式;,适用于Chrome等主流浏览器;以及内置在QQ浏览器中的导出功能,无需额外安装,适合日常快速存档。结合官方导出方式与使用建议,帮助用户根据设备与需求选择最佳方案,同时提醒注意数据隐私与兼容性问题。
2530 0
深度测评:DeepSeek 对话导出工具 Top 3,公式不乱码、排版零折损的终极方案
|
JSON API 数据格式
深入研究:Shopee 商品详情 API 接口详解
Shopee 商品详情 API 是针对东南亚及中国台湾地区电商开发者的强大工具,可获取商品的详细信息(如价格、库存、描述等),支持竞品分析与市场调研。通过 HTTP GET/POST 请求,传入商品 ID 等参数,返回 JSON 格式的商品数据,包括基本信息、销售数据、商家信息等。以下是 Python 示例代码,展示如何使用 requests 库调用该接口并处理响应数据。注意实际应用需遵循 Shopee 认证要求。
|
11月前
|
弹性计算 缓存 前端开发
交友源码APP开发搭建流程基本功能/正版聊天交友软件同城交友系统搭建 助你轻松开启浪漫同城社交
开发一款成功的同城交友APP,是技术、产品、运营和人性洞察的完美结合。它不仅仅是一个软件,更是一个创造连接、传递幸福的平台。 当用户在您的平台上结识了挚友、找到了伴侣,甚至拓展了事业圈子时,您就真正实现了“助你轻松开启浪漫同城社交”的使命。
725 0
|
机器学习/深度学习 人工智能 缓存
SepLLM:开源大模型加速神器!400万Token长文本推理提速50%,告别OOM噩梦
SepLLM 是一个用于加速大语言模型的高效框架,通过压缩段落信息并消除冗余标记,显著提高了模型的推理速度和计算效率,适用于长文本处理和多场景部署。
726 7
SepLLM:开源大模型加速神器!400万Token长文本推理提速50%,告别OOM噩梦
|
关系型数据库 MySQL Go
Mysql查看数据库时区并设置时区
Mysql查看数据库时区并设置时区
1073 0
|
Android开发
Android12 ethernet和wifi共存
Android12 ethernet和wifi共存
1310 0
|
机器学习/深度学习 PyTorch API