gpt4 book ai didi

django - POST 403 禁止在后端使用 Django 的 Chrome 扩展

转载 作者:行者123 更新时间:2023-12-02 05:36:28 32 4
gpt4 key购买 nike

我以前从未开发过 Chrome 扩展,目前正在为我的 Django 驱动的应用开发 Chrome 扩展(具有链接提交功能)。当我尝试使用扩展程序提交链接时,出现以下错误:

'POST http://127.0.0.1:8000/add_link_from_extension 403 (FORBIDDEN)'

这可以通过在 postdata JSON 中传递 csrfmiddlewaretoken 来解决,但是,显然我做不到

<script>var csrfmiddlewaretoken = "{{ csrf_token }}"</script>

在 Chrome 扩展的 html 文件中。你如何将 csrf_token 从 Django 传递到 Chrome 扩展的 JavaScript?或者,还有其他方法可以解决此问题吗?以下是 Chrome 扩展程序中 JS 代码的相关部分:

postdata = {
"url":url.value
//"csrfmiddlewaretoken": csrfmiddlewaretoken
};
$.post('http://' + "127.0.0.1:8000" + '/add_link_from_extension', postdata, success);

最佳答案

您可以尝试使用 CSRF token 设置 cookie(参见:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax)。或者,简单地用 csrf_exempt 装饰你的 View .

就我个人而言,我发现这两种方法都不是最佳选择。确实,如果您要允许通过浏览器扩展之类的方式从外部访问您的网站,您应该设置和使用 API,特别是,如果您要允许任何类型的写访问,您应该添加一个类似于 OAuth 的身份验证层。 django-tastypie是一个很好的嵌入式 API 解决方案,您可以尝试,它支持开箱即用的 OAuth。

关于django - POST 403 禁止在后端使用 Django 的 Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620540/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com