如何在 Flask 中获得用户对 cookie 的许可

2024-03-07

我有一个用 Flask 和 Flask-Login 构建的网站,所以我知道它在某个时候会生成 cookie。但我的问题比这更基本。

Flask 应用程序是否总是立即生成 cookie?

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

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


为了它的价值,我这样做了:

  1. 在任何页面上强制显示横幅 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 %}
  1. 将函数注入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(使用前将#替换为@)

如何在 Flask 中获得用户对 cookie 的许可 的相关文章

  • 带 cookie 身份验证的 Gorilla websocket

    这是我的设置 我正在构建一个带有用户登录的服务 使用 Negroni 和 Gorilla 登录后 用户会获得一个会话 cookie 服务器使用该会话 cookie 来授权受保护的端点 受保护的端点之一允许用户 客户端与服务器打开 Webso
  • Flask:AttributeError:'UnboundField'对象没有属性'__call__'?

    为什么我会收到此错误 什么是 UnboundField 我需要了解什么才能在将来修复和避免此问题 当我访问时调试输出http 127 0 0 1 5000 signup http 127 0 0 1 5000 signup Attribut
  • 为什么 Chrome 审核建议我最小化 Cookie 大小?

    如何最小化请求的 cookie 大小 Chrome 似乎 警告我 我的 cookie 大小为 41B 这根本不是很多 但是它警告我有什么原因吗 这是一个 PHPSESSID cookie 我真的不知道如何最小化它 有任何想法吗 我的请求响应
  • 在运行时更改蓝图或重新加载 Flask 应用程序

    我正在编写一个支持插件架构的 Flask 应用程序 每个插件都位于一个单独的文件夹中 并且是一个模块 该模块至少具有一个类 该类是一个子类Plugin班级 出于安全原因 我不想在 Flask 应用程序最初运行时加载所有插件 相反 用户可以从
  • Jinja2中获取请求参数

    如何检索请求参数a在 Jinja2 模板中 http foo bar a 1 我这个答案有点晚了 但其他解决方案并没有真正考虑到您对 Flask 的使用 事实上 您将 Flask 与 Jinja2 一起使用 这使得您的情况与其他框架有点不同
  • 使用 Wordpress 验证 Flask API

    我有两个网站 一个托管大部分内容的 WordPress 博客 我还用 Flask 编写了一个 API 我想在 Wordpress 受密码保护的页面 中使用 API 但我需要在 Flask 响应之前验证请求是否经过身份验证 当我收到对 Fla
  • 如何在 Rails rspec 中测试 cookie 过期时间

    在 rspec 中设置 cookie 有很多困惑http relishapp com rspec rspec rails v 2 6 dir controller specs file cookies http relishapp com
  • 如何在 Django 中像应用程序一样从配置中注册 Flask 蓝图?

    如何从我的配置中注册 Flask 蓝图 就像 Django 中的应用程序一样 我想在配置文件中定义蓝图 它将自动注册 config py BLUEPRINTS news files 实际上我一直在一个暂定名为的项目中勾勒出类似的东西臀部口袋
  • Flask 未激活调试模式

    我正在开始使用 Flask 我正在尝试遵循一些教程 但我无法在调试模式下运行 Flask 应用程序 我尝试了我发现的最简单的代码 from flask import Flask app Flask name app debug True I
  • jquery ui 选项卡不再支持 cookie?怎么办?

    我很抱歉这是一个开放式问题 但我很茫然 从 jquery UI 1 9 版本开始 它们使用cookie选项以保存跨多个页面的选项卡的活动状态 http jqueryui com upgrade guide 1 9 deprecated co
  • IdentityServer4 客户端 - 刷新 CookieAuthenticationEvents 上的访问令牌

    我试图在访问令牌过期时使用刷新令牌 类似的问题已回答here https stackoverflow com a 41557598 3501052 And 更新令牌的示例代码 https stackoverflow com question
  • Python 线程在 main 中调用一次时运行两次[重复]

    这个问题在这里已经有答案了 if name main t threading Thread target authtarget t daemon True t start print running thread app run debug
  • Heroku 上的 OpenCV 错误,但模型部署成功

    我正在尝试在 Heroku 上部署深度学习 Flask 应用程序 它已成功部署 但仍然给我Application Error信息 我检查了日志 但没有发现任何内容 帮我 构建日志 gt Building on the Heroku 20 s
  • 如何使用gunicorn和bokeh服务配置Nginx

    我想提供一个 Flask 应用程序 该应用程序使用本地网络服务器上的嵌入式散景服务 为了说明这一点 我使用了一个例子散景服务示例 https github com bokeh bokeh blob 0 12 11 examples howt
  • Flask 应用程序路由中的多个参数

    烧瓶怎么写app route如果我在 URL 调用中有多个参数 这是我从 AJax 调用的 URL http 0 0 0 0 8888 createcm summary VVV change Feauure 我试图写我的烧瓶app rout
  • 在测试中捕获 Flask 中止状态代码?

    我在基于 Flask 类的视图中有一个 abort 我可以断言已调用中止 但我无法在上下文管理器中访问 406 代码 views py from flask views import View from flask import abort
  • 在 docker 中根据更改重新启动 Flask 应用程序

    我正在使用 Flask script 来运行我的应用程序 if name main manager run 在 docker 中我有以下内容 CMD python manage py runserver h 0 0 0 0 p 5000 现
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • Flask 应用程序的测试覆盖率不起作用

    您好 想在终端的 Flask 应用程序中测试 删除路由 我可以看到测试已经过去 它说 test user delete test app LayoutTestCase ok 但是当我打开封面时 它仍然是红色的 这意味着没有覆盖它 请有人向我
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL

随机推荐

  • 打字稿导入导出中持续出现未定义错误

    在多个文件中已经有很多关于打字稿的问题 例如 这个 打字稿导入 导出 https stackoverflow com questions 72692423 typescript import export 有趣的问题和答案 我简化并测试了它
  • 在 SQL Server 中使用链接服务器有哪些缺点?

    是否存在任何巨大的性能问题或安全问题 使用 SQL Server 2005 及更高版本 服务器迁移更加复杂 为多跳设置安全性可能很棘手 非 SQL Server 需要安装本地驱动程序 Sybase DB2 等 集群 异地灾难恢复 注册表项
  • 如何将healpy地图转换并保存到不同的坐标系?

    我有一张带有银河坐标的healpix 地图 我想将该地图转换为赤道坐标系 我知道我可以使用 mollview 函数在赤道坐标中绘制地图 你有什么办法保存这样的转换后的地图吗 谢谢 维努 以下函数更改地图的坐标系 def change coo
  • Symfony2 的 role_hierarchy

    我的 role hierarchy 有一个大问题 security role hierarchy ROLE ADMIN ROLE USER ROLE AUTHOR ROLE MODERATOR ROLE SUPER ADMIN ROLE A
  • 在 Linq to Sql 中返回多列?

    如何在 C 中使用 linq to sql 返回多列 我试图用以下方式结束我的查询 select new A Product A Qty 但这会返回一些匿名类型 我不确定该怎么办 如何返回它以及如何从中提取信息 我想把它放在某种数组中 th
  • 右对齐 Facebook 点赞按钮 iFrame 的内容?

    我需要右对齐 Facebook Like 按钮的内容 以便它们始终位于其设置的 宽度 的骑行侧 我可以在 Firebug 中通过将表格设置为 float right 来做到这一点 但如果我在 CSS 中定义该值 它似乎不起作用 Here s
  • 在 C# 中使用 jpegtran、jpegoptim 或其他 jpeg 优化/压缩

    我在网上商店收集了 100 种 也许是 1000 种 产品 其中每种产品都有 10 30 张图片 我需要在不损失图像质量的情况下尽可能优化图像的文件大小 我没有直接使用 jpegtran jpegoptim 或任何其他 jpeg 优化器 但
  • numpy 中的双梯形积分

    我有一个二维函数 f x y exp y x 我想使用 NumPy trapz 计算二重积分 int 0 10 int 0 10 f x y dx dy 经过一番阅读后 他们说我应该重复 trapz 两次 但它不起作用 我尝试过以下方法 i
  • 如何在 Cocoa 中创建并显示自定义工作表? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是新手问题 如何在 Cocoa 中创建并显示自定义工作表 就像 Safari 中的 添加书签 表 见下文 任务涉及哪些步骤 每一步如
  • 如何测试你的应用程序被杀死并重新启动?

    我想测试我的应用程序被杀死并在非主要活动中重新启动的情况 假装用户该应用程序只是恢复了 有人知道怎么做吗 我发现的所有想法都不起作用 因为它们都杀死了应用程序 然后该应用程序在主要活动中恢复 我实际上发现这更方便 您的应用程序在上一个活动中
  • 更改 Bazel 中的测试执行目录?

    我有一个简单的 Bazel 项目布局 如下所示 foo BUILD bazel testdata a txt test sh WORKSPACE 测试检查a txt exists foo test sh bin bash FILE foo
  • 如何向表中添加列?

    使用 react native sqlite storage 该应用程序已经在 Google Play 上上线 我想向现有数据库表添加两列 这样应用程序就不会因现有用户而崩溃 当您将列添加到现有表时 您会收到类似错误 error messa
  • 对 SBCL 中的“ql:quickload”和可执行脚本感到困惑

    我一直在尝试在我的可执行脚本中使用 Quicklisp 包 一个 简单的 工作示例是 usr bin sbcl script eval when compile toplevel load toplevel execute ql quick
  • 如何检查php脚本是否在本地服务器上运行?

    是否可以检查网站 php 是在本地运行还是在托管服务器上运行 如果网站在本地运行 我想启用一些日志 并且我不希望这些日志出现在在线网站上 我可以设置一个变量 local 1 但我必须在上传之前更改它 有没有办法自动执行此任务 本地服务器 W
  • 对于属性上的 NOTIFY 信号,如果我给它一个参数,会有什么区别?

    假设我有一个如下所示的类 class Something QObject Q PROPERTY int something READ getSomething NOTIFY somethingChanged signals void som
  • 更改 AngularJS ngTrim 行为

    我正在使用 AngularJS 版本 1 5 6 我有一个带有大量文本区域和文本输入的大型应用程序 我今天发现了一个错误 该错误是由 AngularJS 修剪文本类型输入的默认行为引起的 我想将此行为从默认修剪更改为默认不修剪 有没有一种简
  • 如何仅使用按位运算符实现 Bitcount?

    任务是仅使用按位运算符实现位计数逻辑 我让它工作得很好 但我想知道是否有人可以建议一种更优雅的方法 仅允许按位运算 没有 如果 因为 等 int x 4 printf d n x 0x1 printf d n x gt gt 1 0x1 p
  • 查找我的应用程序中的所有 mongoid 模型名称

    有没有办法找到我的 Rails 应用程序中的所有 Mongoid 模型名称 我可以通过获取 app models 文件夹中的所有文件来找到所有模型 但我特别想要 mongoid 模型名称 您可以在 Mongoid 3 1 及更高版本中执行此
  • AS3如何在有多个影片剪辑时使一次只能点击1个影片剪辑

    好的 我有一个页面 上面有 5 个影片剪辑 按钮 当您将鼠标悬停在每一个上时 它们会亮起 OVER 状态 当您单击它们时 它们会展开 DOWN 状态 问题是 如果您展开了多个影片剪辑 处于 向下 状态 它们会重叠并且看起来很糟糕 我想对它们
  • 如何在 Flask 中获得用户对 cookie 的许可

    我有一个用 Flask 和 Flask Login 构建的网站 所以我知道它在某个时候会生成 cookie 但我的问题比这更基本 Flask 应用程序是否总是立即生成 cookie 如果没有 是否有任何工具可以让我识别应用程序的哪一部分在何