OAuth2.0简单笔记(四种授权模式)
金天:坚持写东西,不是一件容易的事,换句话说其实坚持本身都不是一件容易的事。如果学习有捷径,那就是不断实践,不断积累。写笔记,其实是给自己看的,是体现积累的一种方式,要坚持。
OAuth2.0已经大行其道,本文仅仅作为个人备忘记录。
作为OAuth2.0客户端,需要注意一下几点:
1. OAuth2.0 Server Side支持几种授权方式
2. 作为用户OAuth2.0的客户端, 你打算使用那种授权方式
一直提倡看官方文档一手文档,如果想对OAuth2.0有比较透彻的理解,他的规范RFC是必看的,虽然母语为非英语,还是建议新手可以看看原汁原味的OAuth2.0 的RFC是怎么写。克服不必要的恐惧或者懒惰,看多了,自能领会看一手文档的好处。
四种授权模式:
1. 授权码(认证码)模式 (Authorization code) response_type=code
2. 简化(隐形)模式 (Impilict) response_type=token
3. 用户名密码模式 (Resource Owner Password Credential) grant_type=password
4. 客户端模式 (Client Credential) grant_type=client_credential
OAuth2.0的核心既是取得access_token,四种授权模式殊途同归,最终都是要取得access_token,只是路径不同,参数不同,具体可以参考RFC.
另外下面推荐了两个OAuth2.0服务端的实现,一个是PHP,一个是.NET的,笔者用这两种语言最多,特意找了这个实现比较完备的解决方案。实践是学习的捷径,跟智商没有太大关系。
[RFC]http://tools.ietf.org/html/rfc6749