(转载)http://blog.csdn.net/iefreer/article/details/8474630
OAuth2认证协议涉及3方(应用、用户和服务方),加之流程较为繁琐,实现命名不尽相同,
容易忘记和混淆,简述认证流程如下(以新浪微博为例),以便于记忆:
1、向使用OAuth2认证的服务方申请应用,获取应用的consumer_key(应用唯一标识)和consumer_secret(应用私钥)
2、使用key/secret向服务方请求用户授权Token(code也就是authorization_code)
3、使用用户授权Token换取用户信息访问Token(access_token ),这一步weibo除了会返回access_token外,还返回了uid(授权用户的唯一标识)
4、使用access_token(用户信息访问令牌)获取微博帐号信息或发布微博
尽管有上面的描述和图片,还是不容易理解整个的过程为何如此繁琐,打个比喻如下或许有助于深入理解其背后的安全考量:
服务方是小区物业,用户是业主,应用是访客。
那么访客要来拜访业主,首先要得到业主授权,访客给小区物业出示业主授权的凭证,然后小区给访客发放临时通行证得以访问业主。
在回头想一想,这是不是很自然的做法。
iefreer