【问题标题】:WSGI Middleware for OAuth authentication用于 OAuth 身份验证的 WSGI 中间件
【发布时间】:2011-06-06 15:18:02
【问题描述】:

我使用Flask 构建了一个非常小的Web 应用程序。现在我想为站点添加非常基本的身份验证(我不需要授权)。由于 Flask 不支持开箱即用的 auth&auth,我想插入一个 WSGI 中间件来完成这项工作。该网络应用程序仅由大约 10 人使用,所有人都在 Facebook 上。所以我想使用 Facebook 的 OAuth 接口。

我快速浏览了the wsgi.org list of WSGI Middleware 并注意到两点:可用的中间件要么使用起来相当复杂,要么已经过时了。

我找到了以下包:

  • wsgiauth -- 过时了。上次更新是 2006 年,我找不到任何在线文档
  • authkit -- 看起来很不错,但不支持 OAuth
  • barrel -- 似乎只支持BASIC 和基于表单的身份验证。它也有点过时了(最新版本是 2008 年)
  • webmodules -- 仅支持BASIC auth

鉴于这个列表,我会说 AuthKit 是最有趣的。唉,它不支持 OAuth。我很可能会继续尝试。但是,当我在乱涂乱画时,我很想知道周围是否有人有更好的解决方案......

【问题讨论】:

  • 不是身份验证专家,但过时的中间件是否表明使用它会存在安全漏洞,或者中间件相当成熟/完整?

标签: python oauth wsgi middleware flask


【解决方案1】:

Flask 有一个 OpenAuth extensionArmin Ronacher(Flask 的作者)编写。它为 Flask 提供了对 Open Auth 1.0 的支持。

【讨论】:

    【解决方案2】:

    你应该看一下repoze.who,它是用于 WSGI 应用程序的身份验证框架,其插件可用于:

    • HTTP 基本/摘要
    • 通过 HTML 表单进行身份验证,并将身份验证票证存储在 cookie 中。
    • OpenID
    • OAuth
    • LDAP
    • 还有很多我不知道...

    【讨论】:

    • 周末我试了一下 repoze.who。它看起来很有希望。不幸的是,OAuth 插件只提供 OAuth 服务器端。对于我的项目,我需要客户端。我正在考虑自己创建一个插件。但是,考虑到我从事宠物项目的速度,这可能需要一段时间;)
    【解决方案3】:

    如果您希望针对 facebook 授权客户,为什么不使用他们提供的 python sdk,其中包括在此处找到的 oauth 接口 https://github.com/facebook/python-sdk

    【讨论】:

      猜你喜欢
      • 2015-02-02
      • 1970-01-01
      • 2017-03-25
      • 2016-12-08
      • 2015-12-09
      • 2011-05-30
      • 2018-07-10
      • 2011-09-17
      • 1970-01-01
      相关资源
      最近更新 更多