Skip to main content
 首页 » 编程设计

python之Django rest之具有可浏览 api 的自定义身份验证后端

2025年02月15日36me-sa

我正在使用 Django 1.11 和 Django rest framework 3.6.2 我创建了一个自定义身份验证后端:

MyAuthBackend(rest_framework.authentication.BasicAuthentication):  
    # ... 

并将其添加到 settings.py 文件中:

REST_FRAMEWORK = {   
    'DEFAULT_AUTHENTICATION_CLASSES' : ('path.to.MyAuthBackend',) 
 
} 

我还尝试扩展 SessionAuthentication 但没有成功

我的问题是用户正在尝试通过 browsable api 登录,而 browsable api 使用的身份验证后端似乎不是默认后端。

我在哪里可以更改它?我必须在可浏览的 api 中使用我自己的身份验证后端, 谢谢。

请您参考如下方法:

我认为在可浏览的 api 中使用 BasicAuthentication 是不可能的(不改变它的一大堆内部结构)。

考虑将 SessionAuthentication 与新的一起使用,您可以在应用程序中使用基本身份验证,并在可浏览的 api 中使用 session 身份验证:

'DEFAULT_AUTHENTICATION_CLASSES': ( 
    'path.to.MyAuthBackend', 
    'rest_framework.authentication.SessionAuthentication', 
),