如果我的 Django 站点没有用户登录,我如何通过我的 API 请求传入 CSRF 令牌?



使用Django rest框架,我创建了一个API端点,我在静态文件中调用该端点,我想将CSRF令牌传递到该端点中,以便我是唯一可以访问API的人。

我的Django站点没有的用户登录。

我基本上想在我的API端点中做这样的事情

@api_view(['POST'])
def payment(request, *args, **kwargs):
if (("Authorization" not in requests.headers) or (request.headers["Authorization"] != "token")):
return Response({"Error": "Not authorized for access."})
# ...

我需要一次性生成一个令牌并重复使用吗?

或者我可以在每次使用脚本时生成一个吗?

如何访问HTML文件中的csrf令牌?

我使用的是基于类的视图,我假设我会将其传递给get_context_data,但我如何设置API端点以接受此CSRF令牌?

我建议直接从django restframework使用TokenAuthentication:https://www.django-rest-framework.org/api-guide/authentication/

然后,您将在所有请求的标头中传递令牌如Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

如果使用django-restframework中的decorator,则可以跳过所有自定义令牌验证,因为这是由django-restframework完成的。

@api_view(['POST'])
@authentication_classes([TokenAuthentication])
@permission_classes([IsAuthenticated])
def payment(request, *args, **kwargs):
# ...

相关内容

  • 没有找到相关文章

最新更新