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

Django Ninja API文档中授权按钮不显示的问题求助

Django Ninja API文档授权按钮不显示的解决办法

你用错配置逻辑了——Django Ninja和Django REST Framework的rest_auth不属于同一套体系,之前添加的REST_AUTH_DEFAULT_AUTHENTICATION_CLASS对Ninja的API文档完全无效,按以下步骤修正:

  • 移除无用配置:把INSTALLED_APPS里的rest_auth,以及settings中的REST_AUTH_DEFAULT_AUTHENTICATION_CLASS配置项删除,这些是DRF专属配置,和Ninja无关。
  • 配置Django Ninja专属认证:在你的API定义文件(比如api.py)中,直接给Ninja的API实例指定认证方式:
    from ninja import NinjaAPI
    from ninja.security import HttpBearer
    
    class TokenAuth(HttpBearer):
        def authenticate(self, request, token):
            # 编写你的token验证逻辑,比如从数据库匹配用户
            from django.contrib.auth.models import User
            try:
                user = User.objects.get(auth_token=token)
                return user
            except User.DoesNotExist:
                return None
    
    # 给API实例绑定认证类
    api = NinjaAPI(auth=TokenAuth())
    
  • 验证生效:重启Django服务,访问默认的API文档地址(/docs),此时右上角应该会出现"Authorize"按钮,点击后输入token即可完成认证配置。

如果仍不显示,排查以下点:

  • 是否在API实例中正确传入了auth参数
  • 认证类是否继承自ninja.security下的基类(如HttpBearer、HttpBasic等)
  • 是否重启了Django服务使配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:14:53