Flask AppBuilder 与 oauthlib
2018-01-27 本文已影响239人
小鱼儿他老汉
FAB自带OpenID/oauthlib的社交帐户登录,不过也是基于Flask-oauthlib基础开发的。由于互联网和移动互联网行业进行垄断,所以中小公司利用这些寡头的帐户实现第三方登录,是快速扩张的一条捷径。
国内还是国外
但无论是OpenID还是oauthlib都基于一个事实:即消费端(即应用服务器)、客户端(如浏览器和移动电话)和服务器端(oauth服务器)需要彼此相连。而国内的环境,消费端和客户端访问国外的服务器有困难,所以开发遇到很大问题。
基本采用科学上网的方式,可以将消费端和客户端模拟到海外IP,但是这种时断时续的连接对开发阻碍非常大。
山中无老虎,猴子称大王
国外最常用的Google+,Facebook,Twitter,Flickr基本上都没有办法使用,只有退而求其次,用Github和Linkedin来实现。
Flask-oauthlib开发者lepture好像是中国籍,提供的演示代码支持了大多数国外和国内的oauth登陆。但是FAB的演示代码中却需要更新一下才能够支持Github和Linkedin。
此外,国内和国外均可以访问的oauth服务还有:
- Yahoo
- AOL
- Live ID
- reddit.com
- Microsoft Azure
国内管制更严格
相比之下,国内的oauth登录对于开发者的验证要求更多更高,管制的比较严格。我计划支持的是微信、QQ、支付宝、微博。Weibo登录还必须提交三种尺寸的icon,有些无聊。QQ登录似乎也改动过,需要更新。支付宝和微信还未尝试过。
FAB的登录还有一个缺点,即oauthlib和DB authen无法同时存在。可能需要借助一个额外的oauth-provider来实现。当然如果面向未来扩展的需求,从一开始就使用oauth-provider也是正确的决定。因为RESTful API的认证和OAuth紧密相连。