【发布时间】:2019-11-03 04:58:03
【问题描述】:
我有一个经过身份验证的列表视图,但每当我尝试使用标头中的令牌发出请求时,都会收到 400 错误。有什么想法吗?
列表视图
class EventListView(ListAPIView):
authentication_classes = (TokenAuthentication, )
permission_classes = (IsAuthenticated, )
serializer_class = EventFilterSerializer
...
获取身份验证令牌端点:
from rest_framework.authtoken.views import obtain_auth_token
urlpatterns = [
path('auth/', obtain_auth_token, name='api_token_auth'),
]
设置:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
}
邮递员截图
【问题讨论】:
-
那个令牌是从哪里来的?
IsAuthenticated权限检查用户是否已登录,这通常通过会话 cookie 完成 -
@IainShelvington 我更新了帖子以包含 get_auth 端点
-
您在视图中将
authentication_classes设置为一个空元组,可能是这个问题吗?您需要添加TokenAuthentication或删除该行(如果它在DEFAULT_AUTHENTICATION_CLASSES中) -
我确实在设置中配置了
DEFAULT_AUTHENTICATION_CLASSES。我还在视图中包含了课程,但我仍然得到 400。我再次更新了帖子。 -
我的立场已得到纠正,这解决了我的问题,我必须重新启动服务器才能看到更改。
标签: django django-rest-framework django-rest-auth