如何在不以用户身份登录的情况下将数据 POST 写入受限的 REST API url?
How to POST a data into the restricted REST API url without logging in as a user?
在我的 Django 应用程序中。我使用 django.contrib.auth 作为用户身份验证,我也有 django rest 框架 APIs.
我已经启用了。
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
@views.py 在 /api/data/
下
class TestView(generics.ListCreateAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = TestSerializer
queryset = Test.objects.all()
filterset_class = TestFilter
def get(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
serializer = TestSerializer(queryset, many=True)
return Response(serializer.data)
因为,我只能通过用户帐户登录来访问 API 数据,但是在我的项目上。我有一个传感器 (IoT) 必须 POST 进入 api 127.0.0.1/api/data/
,
如何在不使会话过期的情况下验证我的传感器 (IoT) 以 POST 向 API url 请求?
或
如何在不以用户身份登录的情况下POST将数据写入受限REST API url?
谢谢!
对于这种情况,当您需要为无法定期刷新其 session/token 的客户端提供令牌时,您始终可以使用令牌身份验证(其中每个用户都可以使用未过期的令牌。 )
DjangoRestFramework 中有一个现有的解决方案,使用 Token Authentication Backend,您也可以在现有的身份验证后端旁边使用它。
在我的 Django 应用程序中。我使用 django.contrib.auth 作为用户身份验证,我也有 django rest 框架 APIs.
我已经启用了。
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
@views.py 在 /api/data/
下class TestView(generics.ListCreateAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = TestSerializer
queryset = Test.objects.all()
filterset_class = TestFilter
def get(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
serializer = TestSerializer(queryset, many=True)
return Response(serializer.data)
因为,我只能通过用户帐户登录来访问 API 数据,但是在我的项目上。我有一个传感器 (IoT) 必须 POST 进入 api 127.0.0.1/api/data/
,
如何在不使会话过期的情况下验证我的传感器 (IoT) 以 POST 向 API url 请求?
或
如何在不以用户身份登录的情况下POST将数据写入受限REST API url?
谢谢!
对于这种情况,当您需要为无法定期刷新其 session/token 的客户端提供令牌时,您始终可以使用令牌身份验证(其中每个用户都可以使用未过期的令牌。 )
DjangoRestFramework 中有一个现有的解决方案,使用 Token Authentication Backend,您也可以在现有的身份验证后端旁边使用它。