Python Django DRF,将身份验证方案从JWT更改为基本令牌
我有一个Django应用程序,它最初使用drf令牌身份验证。一切都很顺利。然后我决定转到JWT的。我做了所有的改变,一切都很完美。我修改了一堆代码,更新了我的git等等,然后决定drf令牌auth实际上是更好的选择。因此,我重新更改了身份验证类,并删除了JWT特定的URL,但每个邮递员请求仍然会给我JWT拒绝消息:Python Django DRF,将身份验证方案从JWT更改为基本令牌,python,django,authentication,django-rest-framework,django-rest-framework-jwt,Python,Django,Authentication,Django Rest Framework,Django Rest Framework Jwt,我有一个Django应用程序,它最初使用drf令牌身份验证。一切都很顺利。然后我决定转到JWT的。我做了所有的改变,一切都很完美。我修改了一堆代码,更新了我的git等等,然后决定drf令牌auth实际上是更好的选择。因此,我重新更改了身份验证类,并删除了JWT特定的URL,但每个邮递员请求仍然会给我JWT拒绝消息:“详细信息”:“未提供身份验证凭据”。 似乎内部的某些东西并没有通过重新更改身份验证类来重置。我删除了我的sqlite文件并运行了makemigrations和migrate,但仍然得
“详细信息”:“未提供身份验证凭据”。
似乎内部的某些东西并没有通过重新更改身份验证类来重置。我删除了我的sqlite文件并运行了makemigrations
和migrate
,但仍然得到了相同的错误。我如何在不签出git的旧分支(这会丢失我对应用程序所做的大量更改)的情况下修复这个问题
以下是我的设置文件的相关部分:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'prototype',
'rest_framework',
'rest_framework.authtoken',
]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
)
}
你是如何通过邮递员发送请求的?对于jwt auth,您可能是这样发送授权头:Authorization:Bearer{tokenvalue}。对于DRF token auth,您需要这样发送它们:Authorization:token{tokenvalue}。也许你忘记切换了?JWT和基本令牌认证都在邮递员上使用了“承载令牌”设置。对于JWT,我必须从url请求JWT,然后使用我得到的令牌,而对于基本令牌,我只是从django管理页面复制令牌。据我所知,没有什么需要改变的。正如这里的文档中所述,DRF的TokenAuthentication期望授权hedaer如下:授权:Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4bI在我之前的评论中是错误的(现已删除)。邮递员自动使用“持票人”,我需要“代币”。谢谢你的帮助。