https://github.com/haricot/django-cookie-consent
https://django-cookie-consent.readthedocs.io/en/latest/index.html
我找到了 django-cookie-consent github 项目的一个分支,用于管理您网站上的 cookie,并且我大部分时间都可以使用它,但它并不是 100% 完美的。
这是我运行它的方法(通过该 fork 链接的 pip 安装或):
不要使用默认 PyPi 中的 pip3 install django-cookie-consent。从 github 下载 zip 文件并将 cookie_consent 文件夹复制到您的站点包文件夹。例如对我来说是 - /home/user/.local/share/virtualenvs/project_name/lib/python3.7/site-packages/cookie_consent。然后 pip3 安装 django-appconf。然后按照文档说明进行操作。
链接:
http://127.0.0.1:8000/cookies/
http://127.0.0.1:8000/cookies/accept/
http://127.0.0.1:8000/cookies/accept/variable_name/
http://127.0.0.1:8000/cookies/decline/
http://127.0.0.1:8000/cookies/decline/variable_name/
我找到了一些同意横幅的代码https://github.com/haricot/django-cookie-consent/tree/master/tests/core/templates但遇到了问题。我将 test_page.html 模板代码复制到我自己项目的 base.html 中,但是整个脚本标签对我不起作用 -> <script type="{% cc_receipts "social" %}" data-varname="social">
。我得到了 django.template.exceptions.TemplateSyntaxError: 'cc_receipts' did not receive value(s) for the argument(s): 'request'。从该文件复制其余代码并且不包括该脚本标记确实会导致横幅出现在我的项目的 base.html 文件中。
通过单击从测试目录中找到的横幅代码上的接受来接受 cookie 只会将我重定向到空白的 /cookies/accept/social/ 页面。这种接受也不会被记录下来。
接受来自 /cookies/ 的 cookie 确实会被记录,但它给了我这个错误:
TypeError:不能在类似字节的对象上使用字符串模式
[20/Jan/2020 16:00:43]“POST /cookies/accept/social/HTTP/1.1”500 121416
不允许的方法 (GET):/cookies/accept/social/
不允许的方法:/cookies/accept/social/
[20/Jan/2020 16:00:44]“GET /cookies/accept/social/HTTP/1.1”405 0
此错误是否可能是 python3 不兼容问题?
例如,我将如何配置一个名为 social 的组变量名称和一个名为 1P_JAR 的 cookie(这是我网站上的 recaptcha v3 cookie 的示例)。
注意到没有记录用户名或用户的 IP 地址。一旦他们接受或拒绝,最好包括这些。
我不确定这个分叉是否会在用户接受之前自动阻止 cookie。有人可以验证吗?如果包含或不包含此功能,您如何实现它?
当接受 cookie 或拒绝 cookie 时,会在您的浏览器中创建一个名为 cookie_consent 的实际 cookie,它会告诉您哪些 cookie 被接受或拒绝。
有人可以帮我解决这个问题吗?它似乎非常接近符合 GDPR。