为什么 Django Rest Framework 令牌身份验证不起作用?
Why isn't Django Rest Framework Token Authentication working?
我目前正在使用 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):
...
我在邮递员工作以测试 API,无论我是否将令牌放在授权字段中,API 都会按预期工作。我需要更改什么才能使令牌身份验证按预期工作?
更新:
Reqbin 也为我提供了相同的功能,所以我认为这不是邮递员的问题。
您还需要添加权限 class。
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
@api_view(['PUT', 'POST'])
def users_view(request):
...
Django 中似乎存在一个错误,它不允许某些身份验证与基于函数的视图一起使用。我可以确认它不适用于 TokenAuthentication 并且需要使用基于 class 的视图。
我目前正在使用 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):
...
我在邮递员工作以测试 API,无论我是否将令牌放在授权字段中,API 都会按预期工作。我需要更改什么才能使令牌身份验证按预期工作?
更新: Reqbin 也为我提供了相同的功能,所以我认为这不是邮递员的问题。
您还需要添加权限 class。
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
@api_view(['PUT', 'POST'])
def users_view(request):
...
Django 中似乎存在一个错误,它不允许某些身份验证与基于函数的视图一起使用。我可以确认它不适用于 TokenAuthentication 并且需要使用基于 class 的视图。