使用 Flask 和 rauth 进行 Github Oauth 登陆

463 查看

最近我研究了一下Flask的OAuth库。情况并不乐观,大部分的包都已过时并且不再被支持了。大家熟知的Flask-Oauth基本上已经被废弃了,我也不推荐依赖这个库。有趣的是OAuth本身其实是很简单的,认证之后你会得到一个访问token,你只需将其作为GET参数或者作为request的特殊的header即可。也许其他的OAuth提供者需要更复杂的逻辑,但是Github仅此就足够。

我在StackOverflow上请教了如何解决Flask-OAuth的问题 ,从rauth的作者那里得到回答,他建议试一下他写的库。本文就是对他及开源社区的回报。我写了这个真实的例子,告诉你如何使用Flask、rauth、Github和会话来对你的站点的用户进行认证。

首先你需要设置好本地的环境。你需要安装好python、pip和virtualenv。接下来对环境进行设置:

如果要运行我的例子,你还需要安装Sqlite的python绑定,SQLAlchemy会需要它:

pip会安装所有需要的依赖,所以你的环境已经就绪了。

现在你需要到Github设置页面里找到 Applications sections,为你设置好一个新的应用。下图显示了在我的配置区域。

image

 

下面是代码,主模块如下: