You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF可浏览API鉴权失败求助:持Admin Token无法访问预订条目

DRF可浏览API鉴权问题解决指南

问题概述

持有管理员账号Token,在Insomnia工具中可正常访问预订条目接口,但DRF可浏览API界面访问时提示“Authentication credentials were not provided.”,无法获取接口数据。

配置错误定位

查看settings.py中的REST_FRAMEWORK配置,发现一处关键拼写错误:

REST_FRAMEWORK = {
    # 其他配置...
    'DEFAULT_AUTHENTICATION_CLASS': (  # 此处应为复数形式,拼写错误
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication'
    ),
    # 其他配置...
}

DRF的全局认证配置项正确名称是DEFAULT_AUTHENTICATION_CLASSES(复数),单数名称不会被框架识别,导致默认认证机制未生效,可浏览API无法处理Token认证逻辑。

修复方案

  • 修正全局认证配置
    修改settings.py中的配置项名称为复数,确保框架能加载指定的认证类:

    REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': [
            'rest_framework.renderers.JSONRenderer',
            'rest_framework.renderers.BrowsableAPIRenderer',
        ],
        'DEFAULT_AUTHENTICATION_CLASSES': (
            'rest_framework.authentication.TokenAuthentication',
            'rest_framework.authentication.SessionAuthentication'
        ),
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.IsAuthenticated',
        ]
    }
    
  • 在可浏览API中配置Token认证
    配置修正后刷新页面,按以下步骤操作:

    • 点击页面右上角的Authentication按钮(参考提供的截图),打开认证设置面板
    • 选择Token Authentication作为认证类型
    • 按格式输入Token:Token <你的管理员Token字符串>(示例:Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b)
    • 保存设置后重新发起请求,即可正常访问接口

补充说明

虽然BookingViewSet已单独指定authentication_classes = [TokenAuthentication],但全局配置的拼写错误会导致可浏览API的认证入口无法正常加载,因此必须优先修正全局配置问题。

内容的提问来源于stack exchange,提问作者Ikenna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:35:18