用于OAuth认证的WSGI中间件

8 投票
3 回答
4547 浏览
提问于 2025-04-16 09:43

我用Flask搭建了一个非常简单的网页应用,现在我想给这个网站加个基本的登录功能(我不需要复杂的权限管理)。因为Flask本身不支持这种功能,所以我想找一个WSGI中间件来帮忙。这个网页应用大约只有10个人在用,他们都是Facebook的用户,所以我想用Facebook的OAuth接口来实现。

我快速浏览了一下wsgi.org上列出的WSGI中间件,发现有两点:可用的中间件要么使用起来很复杂,要么已经过时了。

我找到了一些包:

  • wsgiauth -- 这个包有点老,最后更新是在2006年,我找不到任何在线文档。
  • authkit -- 看起来不错,但不支持OAuth。
  • barrel -- 似乎只支持BASIC和基于表单的认证,也有点过时(最新版本是2008年发布的)。
  • webmodules -- 只支持BASIC认证。

根据这些信息,我觉得AuthKit是最有趣的选择。不过可惜的是,它不支持OAuth。我可能会尝试一下这个,但在我随便研究的时候,我也想看看有没有人有更好的解决方案。

3 个回答

1

如果你想让用户通过 Facebook 来登录或者授权,为什么不试试他们提供的 Python 开发工具包呢?这个工具包里有一个很方便的 OAuth 接口,你可以在这里找到它:https://github.com/facebook/python-sdk

7

Flask有一个叫做OpenAuth扩展,这个扩展是由Armin Ronacher(Flask的创作者)写的。它为Flask提供了对Open Auth 1.0的支持。

5

你可以看看 repoze.who,这是一个用于WSGI应用的认证框架,里面有很多插件可以使用,具体包括:

  • HTTP基本认证/摘要认证
  • 通过HTML表单认证,并把认证票据存储在cookies里。
  • OpenID
  • OAuth
  • LDAP
  • 还有很多我不知道的……

撰写回答