Django 休息框架 + 简单 JWT - 权限 类 始终启用
Django rest framework + simple JWT - permission classes always enabled
我在休息时使用 simple JWT 进行身份验证 API。
在我基于函数的视图中,我使用 @permission_classes([IsAuthenticated])
定义访问该视图需要 JWT 令牌。
但是,我有一些视图不需要身份验证令牌,因此我没有插入 @permission_classes([IsAuthenticated])
,但是当我测试视图时它仍然需要令牌。
这是一个例子:
@api_view(['POST'])
def userCreate(request):
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(status=201)
return Response(serializer.errors, status=400)
当我尝试访问此视图时,服务器回复 401 并说:
{
"detail": "Authorization header must contain two space-delimited values",
"code": "bad_authorization_header"
}
在我的 settings.py 文件中,我设置了:
...
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
您可以在希望任何用户访问该视图的函数中使用 allow any
from rest_framework.permissions import AllowAny
@permission_classes([AllowAny])
我在休息时使用 simple JWT 进行身份验证 API。
在我基于函数的视图中,我使用 @permission_classes([IsAuthenticated])
定义访问该视图需要 JWT 令牌。
但是,我有一些视图不需要身份验证令牌,因此我没有插入 @permission_classes([IsAuthenticated])
,但是当我测试视图时它仍然需要令牌。
这是一个例子:
@api_view(['POST'])
def userCreate(request):
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(status=201)
return Response(serializer.errors, status=400)
当我尝试访问此视图时,服务器回复 401 并说:
{
"detail": "Authorization header must contain two space-delimited values",
"code": "bad_authorization_header"
}
在我的 settings.py 文件中,我设置了:
...
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
您可以在希望任何用户访问该视图的函数中使用 allow any
from rest_framework.permissions import AllowAny
@permission_classes([AllowAny])