新浪OAuth2学习分享总结

本文将以登陆新浪微博获得授权取得用户数据作为示例简单研究 OAuth 的使用

具体官方文档可以参考:

http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E

为了帮助理解,先定义3个角色:1.最终用户,2.应用程序(消费方), 3.服务(授权方)。那么根据 OAuth 定义主要过程如下:
(1) 【用户】使用【应用程序】,【应用程序】提示【用户】需要授权,【应用程序】先向【服务】获取:RequestToken
(2) 【应用程序】带着 RequestToken 和指定的 Callback 跳转到 【服务】端,让【用户】输入用户名和密码进行授权
(3) 授权成功后,【服务】端则会跳转到【应用程序】提供的Callback页面上,【应用程序】获取:AccessToken
(4) 接下来,【应用程序】用 AccessToken 从【服务】端获取【用户】在【服务】上的各种数据
OK,下面来看看如何使用新浪微博的OAuth,首先当然你需要去申请一个新浪应用的 AppKey 和 AppSecret


Web应用的验证授权

基本流程


1. 引导需要授权的用户到如下地址:

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI


2. 如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE


3. 换取Access Token

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

(其中client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET可以使用basic方式加入header中)


返回值

{ "access_token":"SlAV32hkKG", "remind_in ":3600, "expires_in":3600 }


4. 使用获得的OAuth2.0 Access Token调用API

http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#OAuth2


5.QQ流程

http://wiki.open.t.qq.com/index.php/OAuth2.0%E9%89%B4%E6%9D%83

你可能感兴趣的:(OAuth)