代码之家  ›  专栏  ›  技术社区  ›  Attack68

如何在烧瓶中获得用户对cookies的许可

  •  0
  • Attack68  · 技术社区  · 7 年前

    我有一个网站与烧瓶和烧瓶登录,所以我知道它产生饼干在某一点。但我的问题比这个更基本。

    烧瓶应用程序是否总是立即生成cookies?

    如果没有,是否有任何工具允许我识别应用程序的哪个部分在哪一点上生成cookie,例如,在操作网站时是否可以监视Chrome开发工具?

    这个问题的上下文是GDPR遵从性,特别是在开始时尝试请求权限(而不是最初创建cookie!)然后,当用户单击“接受”时,有一个进程意味着用户(匿名或其他)将不再看到该权限请求横幅(直到本地浏览器缓存清除)

    1 回复  |  直到 7 年前
        1
  •  3
  •   Attack68    7 年前

    我这么做是值得的:

    1) 在任何页面基上指定横幅.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 %}
    

    2) 将函数注入jijna2以检查cookies:

    @app.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
    

    我还使用dev控制台通过探索 document.cookies . 最初生成的cookies似乎只有Google Analytics。

    推荐文章