Flask AppBuilder 与 oauthlib

FAB自带OpenID/oauthlib的社交帐户登录,不过也是基于Flask-oauthlib基础开发的。由于互联网和移动互联网行业进行垄断,所以中小公司利用这些寡头的帐户实现第三方登录,是快速扩张的一条捷径。

国内还是国外

但无论是OpenID还是oauthlib都基于一个事实:即消费端(即应用服务器)、客户端(如浏览器和移动电话)和服务器端(oauth服务器)需要彼此相连。而国内的环境,消费端和客户端访问国外的服务器有困难,所以开发遇到很大问题。

基本采用科学上网的方式,可以将消费端和客户端模拟到海外IP,但是这种时断时续的连接对开发阻碍非常大。

山中无老虎,猴子称大王

国外最常用的Google+,Facebook,Twitter,Flickr基本上都没有办法使用,只有退而求其次,用Github和Linkedin来实现。

Flask-oauthlib开发者lepture好像是中国籍,提供的演示代码支持了大多数国外和国内的oauth登陆。但是FAB的演示代码中却需要更新一下才能够支持Github和Linkedin。

此外,国内和国外均可以访问的oauth服务还有:

  1. Yahoo
  2. AOL
  3. Live ID
  4. reddit.com
  5. Microsoft Azure

国内管制更严格

相比之下,国内的oauth登录对于开发者的验证要求更多更高,管制的比较严格。我计划支持的是微信、QQ、支付宝、微博。Weibo登录还必须提交三种尺寸的icon,有些无聊。QQ登录似乎也改动过,需要更新。支付宝和微信还未尝试过。

FAB的登录还有一个缺点,即oauthlib和DB authen无法同时存在。可能需要借助一个额外的oauth-provider来实现。当然如果面向未来扩展的需求,从一开始就使用oauth-provider也是正确的决定。因为RESTful API的认证和OAuth紧密相连。

你可能感兴趣的:(Flask AppBuilder 与 oauthlib)