问题标签 [flask-login]

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 投票
0 回答
454 浏览

python - 如何从登录管理器用户加载器中获取用户 ID?

所以我有一个烧瓶网络应用程序,除了登录部分之外一切都运行良好。我正在使用烧瓶的登录管理器,但在从用户加载器加载用户 ID 时遇到问题。

这就是我的用户模型的定义方式:

我在尝试登录时收到 500 服务器错误,但是当我为查询硬编码用户 ID 时,一切正常,您始终以该用户身份登录。我尝试将其转换为 int,但出现invalid literal for int()错误。

这是回溯:

对此的任何帮助将不胜感激,因为我对此很陌生。谢谢!

0 投票
1 回答
4098 浏览

python - 在 Flask-Login 上禁用从多个不同位置同时登录

我有一个用Flask编写的 Web 服务。用户 A 使用某个用户名登录服务。我希望用户 B 无法使用相同的用户名登录,直到用户 A 的会话过期。换句话说,我想禁用每个用户同时登录。我如何在Flask-Login中做到这一点?

0 投票
1 回答
810 浏览

rest - REST API 的烧瓶登录

我正在使用 Flask Restful 实现 REST API,并希望为用户添加基于会话的身份验证。目前我没有实现网络应用程序。我想知道 Flask-Login 扩展是否只能用于 Web 应用程序,还是我也可以将它们用于我的 REST 应用程序?

0 投票
1 回答
245 浏览

python - flask-login 必须放在哪里

我想尝试使用flask-login,但导入有一些问题。也许我把它放在错误的地方?

所以,我用 pip install 安装了它flask-login,它被放入了python2.7/dist-packages. 我得到了以下信息:

因此,从 dist-packages 的内容可以看出,所有模块都有 python 包和 *egg-info 文件夹。但是flask-login没有python包,只有两个.py文件。因此我得到了 Unresolved import from flask.ext.login import LoginManager

flask包中,我只有ext包含init .py 的包。

如果有人知道可能出了什么问题,我将非常感谢任何帮助。

顺便说一句,我已经用 pip 安装了所有模块(flask、jinja、wtforms)。

更新

对不起,愚蠢的问题。看来我应该像这样导入:from flask_login import LoginManager. 因为它只是库路径上的一个模块。

但是我遇到过很多这样的进口 from flask.ext.login import LoginManager。有没有办法放进去loginext这很重要吗?

0 投票
2 回答
8290 浏览

python - 使用 Flask-Security 验证 REST API

我正在使用Flask-Security构建一个具有公共 REST API 的 Web 应用程序。我试图弄清楚如何仅使用 REST 调用添加用户注册和登录。使用user_datastore.create_user. 但是我怎样才能使用 REST 调用登录用户呢?
如果flask_security.utils.login_user将用户名+密码或令牌作为参数,这很容易,但它需要一个用户对象吗?该文档显示了如何使用表单和视图注册和登录,但我需要能够从 IOS 设备注册和登录(使用 RESTkit)。

0 投票
1 回答
414 浏览

python - 如何使 Flask-OpenID 对象成为应用程序的全局对象?

我在愚蠢的练习应用程序中使用 Flask-OpenID 进行用户登录。

首先要做的是创建一个 openid 对象,稍后用于装饰登录处理程序(和其他东西):

但是,我想在我的应用程序__init__.py文件中初始化 Flask-OpenID,但在其他文件中使用 OpenId 对象oid,例如我的应用程序views.py文件和可能的其他文件。执行此操作的预期方法是什么?烧瓶开发人员通常如何使oid应用程序具有全局性?

这个类似的问题中,SQLAlchemy 对象被移动到models模块中,但在应用程序设置期间在其他地方初始化,这很有意义,因为该db对象与模型耦合。OpenID 对象遵循相同的模式。但我不想oid投入views.py;它显然不属于那里。那么你会把它放在哪里呢?我可以想到解决方案,但我想知道烧瓶开发人员通常会做什么。这里有一些想法:

  • oid在那里放入__init__.py并初始化它。在这个选项中,如何oid在应用模块的另一部分访问?

  • 为与 Flask-OpenID 和 Flask-Login 关联的对象和方法创建一个auth.py文件。然后auth.oid可以在应用程序的任何地方工作。然后我是否为每个没有直接耦合到其他地方的扩展创建一个新文件?这是矫枉过正,还是扩大规模和保持井井有条的正确模式?

  • 或者,为所有这些小扩展对象创建一个文件,可能称为globals.pyexts.py. 这看起来很尴尬和笨拙。还是大多数烧瓶应用程序最终都有一个随机桶来存放所有其他只需要位于某个地方的垃圾?

0 投票
1 回答
1367 浏览

python - Flask @login_required 不适用于 IE 和 Safari

我正在尝试设置 Flask-Login,但在使用 Internet Explorer 和 Safari 时遇到问题。

从登录页面登录后,这些浏览器上的用户被重定向回登录页面,并且日志显示用户未登录。

这在 Firefox、Chrome 和 Opera 上正常工作:用户被重定向到 /top/ 页面。

这是我设置 login_manager 和登录视图的方法:

我怎样才能使它在所有浏览器中正常工作?

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 中加载时如何反应?

0 投票
1 回答
3362 浏览

python - 使用 Flask-Login 注销特定用户

我正在向 Flask Web 应用程序添加密码重置功能。

重置密码后,我想注销使用该用户名登录的任何人。我知道logout_user()Flask-Login 提供的方法。在我的应用程序中,密码重置是在用户未登录时完成的 - 使用电子邮件确认。它基本上是“忘记我的密码”功能。我正在寻找类似的东西logout_user(specific_user)。还是一种使特定用户 cookie 无效的方法?沿着这些思路。

我想这样做是因为目前如果用户凭据被盗并且他们重​​置了密码,则具有被盗凭据的人仍然登录并且可以访问网络应用程序。

0 投票
2 回答
885 浏览

python - flask-security:最小化数据库命中

在我的应用程序中,我使用了flask-security来添加身份验证和授权主题。SQLAlchemy 也用作数据提供者(以 MySQL 作为后端)。该应用程序运行良好。

然后,我进行了一些 MySQL 跟踪,日志显示在应用程序上请求的每个 URL 处,flask-security 库都会发送两个数据库查询:

  • select ... from user where user.id = 'the user identifier'
  • select ... from role, roles_users ...

我认为这是一个性能问题,我喜欢尽量减少这些查询。我不知道我是否缺少配置功能。