..
理解Oauth协议

开始研究Oauth协议,是为了使用饭否的api写点东西,他们使用就是古早的Oauth1.0。

Oauth协议为了解决第三方应用授权的问题,如何让第三方应用既能够拿到用户的数据,还能保证用户账号的安全。解决的方式是账号密码只在网站拥有者输入,然后第三方和网站拥有者之间,只是用token进行交流。

Oauth1.0的授权过程比较复杂,还需要对参数排序,还有加密等相对比较繁琐。对于学习来说,了解一下还是有好处,当然,各种语言也有很多库来实现相应的功能。

学习Oauth协议,可能最重要的还是看他们是如何解决第三方授权的问题,以及在Oauth协议升级的过程的演变。

Oauth1.0发布与2009年,可能当时HTTPS使用的并不多,所以在解决其安全性上,是通过对请求参数按照一定规则加密来解决,而在Oauth2.0中直接实用HTTPS就简单很多。

Oauth1.0是为了解决Web应用的授权问题,而并没有在设计上考虑移动端,毕竟07年才发布iPhone第一代。导致移动开发早期大家使用xauth来实现授权登录,它是一种对于Oauth1.0协议的简化,他需要用户提供账号和密码。其实,并不安全。

而在Oauth2.0设计时就充分考虑到移动端的设计。还解决1.0时一个很大的安全问题,授权之后的access_token并没有过期机制。

看Oauth协议的发展,也能体会到技术还是要解决现实的问题。

资料