【问题标题】:Using Flask-Security to authenticate REST API使用 Flask-Security 验证 REST API
【发布时间】:2014-07-19 12:46:33
【问题描述】:

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

【问题讨论】:

标签: python rest flask flask-login flask-security


【解决方案1】:

您可以将flask_security.decorators.auth_token_requiredSECURITY_TOKEN_AUTHENTICATION_KEYSECURITY_TOKEN_AUTHENTICATION_HEADER 一起使用(取决于您是要在URL 中还是在标头中传递令牌),或者您可以为您的@987654327 覆盖flask_security.core.UserMixin.get_auth_token @class 和 Flask-Security 会做正确的事。

【讨论】:

    【解决方案2】:

    [写一个答案,因为我没有足够的凭据来评论 Sean Vieira 提供的答案]

    我看了一些 Flask-Security 代码——它为此使用了 Flask-Login 的 LoginManager。 Flask-Login 反过来期望用户定义 token_loader (以及在 User 类中实现 get_auth_token )

    Flask-Security 是否提供“默认” token_loader 功能?否则 - 它与 Flask-Login 相同

    编辑: 事实证明 Flask-Security 工作得很好。我不需要编写自己的 token_loader。 我在一个单独的文件中有安全代码,这就是“魔法”的破坏方式。 我将安全代码带回了 myapp/init.py - 并记录了代码“有效”

    编辑 2: 参考上面肖恩提供的答案。我不认为这是其中之一。 必须使用auth_token_required 装饰器。 在User 类中覆盖get_auth_token 是可选的,以防您想要不同的令牌生成实现(我认为) 在 User 类中覆盖 get_auth_token 是不够的。

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 2016-02-09
      • 1970-01-01
      • 2014-12-21
      • 2015-02-11
      • 2019-02-07
      • 1970-01-01
      • 2017-09-04
      • 2020-04-09
      相关资源
      最近更新 更多