【发布时间】:2021-11-24 16:08:36
【问题描述】:
我目前正在使用 Django rest 框架并尝试实现令牌身份验证系统。目前,我的 settings.py 如下所示:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication'
]
}
rest_framework.authtoken 在 installed_apps 中。
我的 urls.py 看起来像这样:
urlpatterns = [
...
url('^v1/users/$', views.users_view),
...
]
我的 views.py 看起来像这样:
@authentication_classes((TokenAuthentication,))
@api_view(['PUT', 'POST'])
def users_view(request):
...
我正在使用 postman 测试 API,无论我是否将令牌放在授权字段中,API 都会按预期工作。我需要更改什么才能使令牌身份验证按预期工作?
更新: Reqbin 也为我提供了相同的功能,所以我认为这不是邮递员的问题。
【问题讨论】:
-
我可以通过使用基于类的视图来解决这个问题,但最初的问题没有得到解决。
-
看来我并不孤单。经过大量的谷歌搜索和研究,我相信这是 Django 中的一个错误,其中一些身份验证器无法与基于函数的视图一起正常工作。谁能证实这一点?如果是这样,我会写一个答案并将其标记为正确。
标签: python django authentication django-rest-framework django-views