我有一个用 Flask 和 Flask-Login 构建的网站,所以我知道它在某个时候会生成 cookie。但我的问题比这更基本。
Flask 应用程序是否总是立即生成 cookie?
如果没有,是否有任何工具可以让我识别应用程序的哪一部分在何时生成 cookie,例如是否可以在操作网站时监控 Chrome 开发工具?
这个问题的背景是 GDPR 合规性,特别是在开始时尝试请求权限(最初不创建 cookie!),然后当用户单击“接受”时,有一个过程意味着用户(匿名或其他)将看不到该权限再次请求横幅(直到清除本地浏览器缓存)
为了它的价值,我这样做了:
- 在任何页面上强制显示横幅 base.html:
{% if cookies_check() %}
{# then user has already consented so no requirement for consent banner #}
{% else %}
{# show a cookie consent banner #}
<div id="cookie-consent-container">
<button id="cookie-consent">I Consent</button>
</div>
<script>
var fn = function () {
document.cookie = "cookie_consent=true";
document.getElementById('cookie-consent-container').hidden = true;
};
document.getElementById('cookie-consent').onclick = fn;
</script>
{% endif %}
- 将函数注入jinja2以检查cookie:
@app.context_processor
def inject_template_scope():
injections = dict()
def cookies_check():
value = request.cookies.get('cookie_consent')
return value == 'true'
injections.update(cookies_check=cookies_check)
return injections
我还使用开发控制台通过探索来检测现有的 cookiedocument.cookies
。最初生成的唯一 cookie 似乎是 Google Analytics。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)