问题标签 [flask-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1973 浏览

python - KeyError:Flask_security 中的“安全性”?

我正在使用 Flask 构建一个网站,现在我正在尝试使用Flask_Security进行基于令牌的身份验证。我现在想从用户那里获得一个 auth_token,为此我使用get_auth_token() 方法。不幸的是,我在此消息下方得到了堆栈跟踪。

有人知道出了什么问题吗?欢迎所有提示!

0 投票
1 回答
2056 浏览

python - 如何让 Flask_Security 中的 auth_token_required 工作?

我正在尝试为使用 Flask 的应用程序构建一个基于令牌的后端(API),我正在尝试使用Flask_Security。由于我使用的是Peewee ORM,因此我已按照本指南构建基本设置,现在我必须构建应该登录用户的视图,然后构建一个实际提供一些有用数据的视图。

所以我返回令牌的登录视图如下所示:

这很好用;我得到一个令牌作为响应。我现在想保护另一个视图,auth_token_required并且我想将令牌用作标题。所以我尝试如下:

但是启动 Flask 会导致AttributeError: 'str' object has no attribute '__module__'. 该文档对其使用也不是很有帮助。

有人知道我怎样才能让它工作吗?欢迎任何提示!

0 投票
2 回答
1026 浏览

python - 使用烧瓶安全确认注册时出错

我正在使用烧瓶安全来处理用户注册、登录等。在使用默认烧瓶安全视图注册新用户时遇到问题。

编辑

我设法在解决问题上取得了一些进展。最初的问题是我没有提供 load_user 回调。现在我正在这样做:

问题是确认 url/view 似乎使用了 AnonymousUser,因此查询过滤器与正确的用户不匹配。有什么线索吗?

原来的

我能够在注册视图中提供用户邮件和密码,我成功收到了一封确认电子邮件(flask-security 提供的默认模板)但是当我尝试确认帐户时点击邮件确认链接我得到了以下属性错误:

这是完整的回溯:

这是我的应用程序配置:

这是我的模型定义(我使用的是 mongodb):

有没有人知道问题可能是什么?提前致谢!

0 投票
1 回答
4580 浏览

python - 将“外部”类模型与烧瓶 sqlalchemy 关联

我们为各种 python 模块使用中心类模型。这个模型是使用 SQLAlchemy 定义的。这些类都继承自 declarative_base。

例如,我们的模型定义如下所示:

我们一直在构建一个烧瓶网络应用程序,我们在其中使用相同的模型。我们发现了一个棘手的问题,flask-sqlalchemy 的设计方式似乎是,它期望其模型中使用的所有类都通过传入会话的活动实例来定义。这是一个“正确的”flask-sqalchemy 类模型定义的示例:

请注意,flask-sqlalchemy 的上述示例需要一个已经实例化的 sql 会话。这让我们感到震惊,因为我们完全不知道如何将我们的 SqlAlchemy 模型集成到烧瓶中。我们真的特别想使用烧瓶安全套件。

之前在 SO 上已经提出过这个问题。在这里,例如: 如何将 flask-sqlalchemy 与现有的 sqlalchemy 模型一起使用?

我们的要求与那里接受响应的人不同。响应指出失去了使用 User.query 的能力,但这正是我们必须保留的内容之一。

放弃我们漂亮的、优雅的、中心类模型定义来支持 flask-sqlalchemy 似乎需要的东西是不可行的。我们有什么方法可以将我们的模型与 SQLAlchemy() 对象关联起来?在我们的类上获得 .query() 方法的奖励积分似乎是烧瓶安全所必需的。

0 投票
1 回答
796 浏览

angularjs - 使用角度从烧瓶中提供令牌保护文件

  • 我有一个文件,与烧瓶一起提供,受基于令牌的身份验证保护。
  • 我想从 Angular 应用程序提供下载
  • 令牌存储在角度会话中并放入每个 $http.get 或 post 的标题中

但是当我只是放置一个指向烧瓶路径的链接时,令牌不会添加到请求标头中,因为它不是角度 $http.get() 而只是一个普通的锚,我不能这样做(对吗?)。

我不想将 url 中的令牌作为查询字符串参数传递。我如何向用户提供下载?我应该先将它 $http.get() 转换成 Angular 然后将它作为文件下载通过隧道吗?

登录后的令牌存储:

它被注入到每个 $http get 或 post 中:

烧瓶(带有烧瓶安全)部分:

我该如何解决这个问题?

0 投票
2 回答
3859 浏览

sqlite - 使用 AWS Elastic Beanstalk 烧瓶 SQLAlchemy 数据库 - 浪费时间?

我已成功将 Flask 应用程序部署到 AWS Elastic Beanstalk。该应用程序使用 SQLAlchemy 数据库,我正在使用 Flask-Security 来处理登录/注册等。我正在使用 Flask-Migrate 来处理数据库迁移。

这里的问题是,每当我使用git aws.push它时,它都会将我的本地数据库推送到 AWS 并覆盖实时数据库。我想我想做的只是从 AWS EB 中“拉”实时,并且只在极少数情况下推送。

我能否访问已推送到 AWS 的 SQLAlchemy 数据库?或者,这不可能吗?也许有一些组合.gitignore.elasticbeanstalk设置可以工作?

我正在使用 SQLite。

0 投票
2 回答
3054 浏览

flask - 在 Flask 中分配组权限

我有一个使用 Flask-Security 和 MySQL 的 Flask 应用程序。不幸的是,Flask-Security 不提供组/多租户管理(https://github.com/mattupstate/flask-security/issues/285)。

我想实现以下内容:

  1. 登录时,用户输入他/她的登录凭据。
  2. 查询用户数据库以查看用户属于多少组(管理、会计、销售等)。
  3. 如果用户属于多个组,则会出现一个弹出窗口,列出用户所属的组。
  4. 选择组后,用户登录,并为用户的会话设置全局变量(tenant_id 或 group_id)。然后,此全局变量可用于预过滤用户的任何 DB 搜索。

我不确定如何实现步骤 2 和 4。可以使用 Flask g.object ( http://flask.pocoo.org/docs/0.10/api/#flask.g ) 来实现这样的事情吗?

0 投票
0 回答
539 浏览

flask - 如何使用 Jinja2 和 Flask 在模板级别实现粒度 ACL?

如何使用 Jinja2 和 Flask 在模板级别实现粒度 ACL?

这是我在没有 Jinja2 上下文字典或任何预构建的 Flask ACL 库的情况下所拥有的。这是我自己的伪 ACL,我只需在数据库中查询角色并将其放入我的索引函数中。

(源代码修改自The Flask Mega-Tutorial

我已经查看了几个用于 Flask 和 ACL 的库,例如

https://github.com/mikeboers/Flask-ACL

但我找不到的是如何将 ACL 应用于呈现模板中的特定项目,而不管任何 Flask 库。

如果我有一个名为“秘密信息”的按钮,但该页面可供所有人使用,我该如何保护该按钮?该render_template函数已被调用。

或者,有时我可能有一组只有特定主管级别的人才能看到的编辑信息,我不想创建单独的模板。

唯一接近的是 Jinja2 的 contextfilter,

http://jinja.pocoo.org/docs/dev/api/#jinja2.runtime.Context

但是,我不确定如何使用它。

除非只有几个组,否则我上面的方式似乎非常难以管理。较大的集合将需要嵌套组和优先级。

0 投票
1 回答
1004 浏览

python - 如何覆盖 Flask-Security 中注册表单的字段?

如何覆盖 Flask-Security 中的默认注册表单是删除所有标签属性。在文档中有一段自定义视图,但在示例中是将字段添加到表单中,我需要更改默认值。

0 投票
1 回答
911 浏览

python - “TypeError:hashpw() 参数 1 必须是 str,而不是字节”,当尝试使用 flask-security 注册用户时

我正在尝试使用Enferno 框架创建一个小型烧瓶应用程序,但是当我尝试注册用户时,我收到一个似乎由 passlib 库生成的错误。我不明白这是我做的事情还是图书馆本身的错误。

这是完整的追溯: