问题标签 [flask-principal]

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 投票
3 回答
3192 浏览

python - 对烧瓶主体应用程序进行单元测试

总之,我正在编写一个烧瓶应用程序,它依赖于烧瓶主体来管理用户角色。我想编写一些简单的单元测试来检查哪个用户可以访问哪些视图。pastebin上发布了一个代码示例,以避免使这篇文章混乱。简而言之,我定义了一些路由,装饰了一些,以便它们只能由具有适当角色的用户访问,然后尝试在测试中访问它们。

在粘贴的代码中,test_memberandtest_admin_b都失败了,抱怨PermissionDenied. 显然,我没有正确声明用户;至少,有关用户角色的信息不在正确的上下文中。

任何有关上下文处理复杂性的帮助或见解将不胜感激。

0 投票
1 回答
898 浏览

python - 在我的示例中,装饰器要求在烧瓶主体中无法正常工作

我对烧瓶主体中的装饰器要求(http_exception = 401)有问题。我正在尝试访问需要登录的站点,但我可以访问那里。你知道为什么吗?我的代码如下:

基础设施.py

视图/login.py

视图/profile.py

谢谢你的建议。

0 投票
2 回答
5672 浏览

flask - Flask-auth、Principal 和 Flask 安全性

谁能说出这三个扩展之间是否存在根本区别,或者它们都做类似的事情吗?我一直在阅读文档,似乎有很多交叉。我猜有些只是提供更多功能。

我想将用户角色添加到我的应用程序中,以便某些用户具有某些权限。即level1 用户可以创建5 个资源,level2 用户可以创建10 个等等。我一直在考虑滚动我自己的,看起来并不太棘手。我正在考虑按照http://flask.pocoo.org/snippets/98/的思路使用装饰器,这个解决方案会有任何安全问题吗?我已经在使用 Flask-login,所以我会将它与它集成。

0 投票
1 回答
2035 浏览

python - Flask-Login & Flask-Principle 认证用户掉落到flask_login.AnonymousUserMixin

我遇到两个问题

  1. 我的认证用户不断下降到 flask_login.AnonymousUserMixin
  2. 我使用 Flask-Login 和 Flask-Principal 收到了意外的信号

试图获取受 @admin_permission.require(http_exception=403)保护的 /projects/10 URL

这是我的控制台输出:

进入登录表单(到目前为止一切顺利)。输入有效的登录名和密码并获得疯狂的信号和行为并不是我所期望的:

如您所见,我让 current_user 指向有效的 Employee 实例(类)和身份 id=103,但是由于某种原因它立即变成了 flask_login.AnonymousUserMixin,然后身份验证系统通过了该用户并且不允许我打开 /projects/ 10 网址。

任何想法有什么问题?以及为什么我会收到这么多信号-根据代码,它们应该仅在成功登录时发生。我想念什么?

源代码:

还有我的 Employee SQLAlchemy 类

0 投票
2 回答
4978 浏览

python - Flask Login 和 Principal - current_user 是匿名的,即使我已登录

我正在使用 Flask Login 和 Principal 进行身份和角色管理。我的需求是直接从文档中描述的。我的代码在这里:

在我的登录代码中,我这样做:

登录时,信号按预期触发。在随后的每次页面加载中,current_user 是匿名的并且没有用户 ID,但所有 @login_required 函数的行为就像用户已登录一样。Flask login 知道用户已登录,但由于某种原因 current_user 不一致。

我是否在某处遗漏了配置的基本点?

0 投票
1 回答
933 浏览

python - 在烧瓶主体中需要多个要求

我正在使用烧瓶主体,最新版本的 Flask-Principal (0.4.0)
我有某些 url 路由,例如gpsData、报告、条目

单个路由可以通过多个用户角色
url查看------------Role
gpsData -- admin,reporter,client
reports -- admin,reporter
entry -- admin,client,data_entry
eg

一次只需要一个似乎有效,就像在这种情况下,“reporter.require”只能工作。如果使用管理员 ID 登录,则会产生错误。

更新:

同样在模板中,我只想显示只能由特定用户角色查看的 url。

0 投票
1 回答
203 浏览

python - 基于 Flask Principal 的条件逻辑

有没有办法访问烧瓶主体以便有条件地执行一些代码?

在功能上,我想做类似的事情:

然后在模板中:

0 投票
4 回答
1194 浏览

python - Flask Principal 按需粒度资源

我一直在看这篇文章: http: //pythonhosted.org/Flask-Principal/#granular-resource-protection

现在虽然它当前的工作方式没有任何问题,但我看不出它非常有用,因为在登录时所有帖子都被读取并被EditBlogPostNeed添加到身份中。

想象一下,如果我写的帖子数量超过了正常数量,从长远来看,这将不是一个很好的策略,因为我想在访问视图时检查帖子/posts/<post_id>

有没有办法使用 对每个视图请求进行检查Flask Principal

我当然可以通过惰性关系查询和过滤器轻松解决它,但我想使用Flask Principal.

0 投票
1 回答
2427 浏览

python - Flask-Principal 处理 PermissionDenied 异常的最佳实践

我是编写烧瓶的新手,目前flask-principal用作我的授权机制。当用户尝试在没有所需权限的情况下访问 url 时,flask-principal 会引发PermissionDenied异常。

它会导致我的系统抛出500 internal server错误。

如何捕获特定异常并将用户重定向到警告页面?如果您可以分享一个代码示例,那将非常有帮助。

0 投票
1 回答
1522 浏览

python - Flask-Principal、Flask-Login、remember_me 和 identity_loaded

我使用 Flask-Login 和 Flask-Principal 开发 Flask 应用程序,到目前为止一切正常,除了 Flask-Login 的记住我功能。

实际上,记住我功能在 Flask-Login 端有效,但 Flask-Principal 的 identity_loaded 功能不会被触发。

当我记录@login_manager.user_loader 和@identity_loaded.connect 的调用时,我登录时看到两者都被调用,但是当我关闭浏览器并重新启动它时,只会调用@login_manager.user_loader。所以我的用户基本上已经登录但没有角色。

Flask-Login 在 GitHub 上有一个已关闭的问题 #19,但它实际上并没有回答我的问题:-/

有没有人知道当用户从 cookie 中加载时如何反应?