问题标签 [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 回答
616 浏览

flask - 用户似乎以其他用户身份登录

我正在使用 Flask-Security 来管理用户,并且我收到用户以自己身份成功登录的报告,但是当他们随机加载页面时,它会显示他们以完全不同的人身份登录。我不确定我哪里出错了。发生这种情况的可能方式有哪些?

我使用 UserService 来做一些简单的用户管理。我在每个请求之前实例化一个用户服务并传入 current_user。

然后,我从这个方法中获取 UserService 中的当前用户:

这在执行此 API 请求代码时调用:

0 投票
1 回答
1683 浏览

python - Flask-Security:如何在主 py 文件之外设置数据库?

我正在使用 Flask-Security 1.7.4 和 Flask 0.10.1。

如果数据库方案存储在 python 文件中,我运行我的网站没有问题app.py

但是我想分离更多我的代码,这样我就可以拥有:

所以我尝试了:

security.py

并在app.py

我收到以下错误:

问题是,如果我保留所有代码,app.py它就可以完美运行。当然数据库要存在。

你能告诉我我做错了什么吗?

谢谢 :)

0 投票
0 回答
178 浏览

flask - 什么在 Flask-Security 中运行 activate_user()

我查看了 Flask-Security 的代码,无法弄清楚是什么运行 datastore.activate_user() 所以 current_user.is_active 返回 True ?

我使用自定义登录表单。表单已验证,但 login_user 返回 False。

主manage.py的摘录:

这是models.py

接受表单时应该自己运行 datastore.activate_user() 吗?

0 投票
1 回答
809 浏览

asynchronous - 使用 Flask-Security 发送异步电子邮件

我正在尝试将 Flask-Security 配置为异步发送电子邮件。

我有一些通过 Flask-Mail 发送异步电子邮件的代码,但是我无法将它与我的应用程序工厂功能集成,以便它与 Flask-Security 一起工作。

应用工厂:

在 Flask-Security 文档中,它说用于@security.send_mail_task覆盖扩展程序发送电子邮件的方式。

那么我到底在哪里实现这个装饰器呢?好像我把它放在应用程序工厂的任何地方,我都会得到循环导入。

这些是我尝试使用的异步电子邮件功能,取自此问题

需要将此代码放在哪里才能与应用程序工厂一起使用?

提前致谢。

0 投票
3 回答
10207 浏览

python-3.x - 带有烧瓶安全扩展的基于令牌的身份验证

我目前正在寻找一种使用基于令牌的身份验证来保护 REST API 的方法。我正在使用 Flask 在 Python 中开发 API,并发现了 flask-security 扩展,它似乎有很多有趣的特性。

文档中提到的功能之一是令牌身份验证。

根据文档:

基于令牌的身份验证通过执行 HTTP POST 来检索用户身份验证令牌来启用,其中身份验证详细信息作为针对身份验证端点的 JSON 数据。成功调用此端点将返回用户的 ID 和他们的身份验证令牌。此令牌可用于对受保护资源的后续请求。

但是,对于如何使用烧瓶安全性实现此功能,我仍然有些困惑。一些在线研究使我使用了诸如 @auth_token_required 之类的东西,但我在将所有内容放在一起时遇到了一些麻烦。烧瓶安全文档本身并不是很有帮助。

例如,用户如何获得身份验证令牌?什么是身份验证端点?

如果你能带领我朝着正确的方向前进,那就太好了。代码示例也很棒:-)

0 投票
1 回答
1049 浏览

python - 当某些方法需要身份验证而某些方法不需要时,在 Flask 中构建 RESTful API

我正在 Flask 中创建一个新的 RESTful API,它应该接受给定对象的 GET(用于请求资源)和 PATCH(用于执行各种增量、非幂等更新)。问题是,修补的某些数据必须经过身份验证,而有些则不应该。

举个例子来说明这一点,假设我正在构建一个应用程序,让每个人都可以查询一个资源被点击了多少次,以及它的页面被查看了多少次。它还让人们在 javascript 中更新资源,说资源被再次点击(未经身份验证,因为它来自前端)。它还让经过身份验证的后端增加页面被查看的次数。

因此,遵循 RESTful 原则,我认为所有三个操作都应该在同一条路径上完成——比如/pages/some_page_name应该接受 GET 和 PATCH,并且应该接受两种不同类型的数据和 PATCH。问题是,在 Flask 中,看起来身份验证总是使用方法周围的装饰器完成,所以如果我有一个类似 的方法@app.route('/pages/<page_id>', methods=['GET', 'PATCH']),我的身份验证将使用@auth.login_required整个方法的装饰器完成,这甚至会强制方法不需要身份验证即可进行身份验证。

所以,我的问题是三个方面:

  1. 我在构建同一路径下提到的所有三个动作时是否正确/这很重要吗?
  2. 如果我是对的,这很重要,我如何只要求对一种类型的 PATCH 进行身份验证?
  3. 如果这不重要,那么构建此 API 的更好或更简单的方法是什么?
0 投票
1 回答
346 浏览

python - 尝试使用 Flask-Security 手动确认用户电子邮件时,确认令牌无效

试图弄清楚当我调用 send_confirmation_instructions 和使用内置的重新发送确认指令表单调用它时有什么不同。

这是我的新用户视图中的调用:

这是来自发送确认视图的内置调用:

据我所知,所有的魔法都发生在这个函数上:send_confirmation_instructions(user)

我可以告诉我如何调用它和 Flask-Security 如何调用它的唯一区别是我使用的是用户实例,而内置函数使用 form.user。

追踪它使用的表单,我什至看不到 form.user 的分配位置:

我现在很迷茫,所以我向你们寻求帮助。任何想法我做错了什么?

0 投票
1 回答
520 浏览

angularjs - 如何从本机移动应用程序登录到 Flask-Security

我为我的单页应用程序设置了 Flask-Security - 并遇到了很多人遇到的 CSRFToken 问题(Flask-Security CSRF 令牌)。在我的 Web 应用程序中,我将 CSRFToken 放入 HTML 中,抓取页面以找到它,并使用它从 Angular 发送我的登录请求作为我的 POST 中的请求标头。

这很有效,但是,如果我从移动应用程序通过 ajax 访问它们,保护 API 的程序是什么?因为我假设我需要做的是首先从移动应用程序登录,存储我的 auth_token,然后在后续的 API 调用中使用它。

这里的问题...我是否需要在我的 /login 页面上进行获取,抓取 CSRF 令牌,使用它向我的服务器发送登录请求,首先获取身份验证令牌?通过 REST 从移动应用程序中抓取 HTML 以获取 CSRF 令牌似乎有点草图。

另外,顺便说一句:我不确定我是否应该将 API 保护为:

或者

0 投票
2 回答
1410 浏览

python-2.7 - Flask 安全性 - TemplateAssertionError:没有名为“urlencode”的过滤器

我刚刚在我的烧瓶项目中添加了烧瓶安全性。它在本地工作,但在 OpenShift 上报告此错误:

我不知道这是否是一些错误的库版本,或者如何调试它。这是我的 setup.py 包列表:

0 投票
1 回答
411 浏览

database-design - Flask:将模型连接到文件,例如个人资料图片

如果重要,我会在我的应用程序中使用 Flask-Security、Flask-SQLAlchemy 和 Flask-Admin。

我应该如何设计我的应用程序,以便我可以将数据库中的一行与一个或多个文件连接起来,例如用户到他们的个人资料图片?