第一步:通過用戶授權獲取授權碼Code;
第二步:用上一步獲取的Code和應用密鑰(AppSecret)通過Https Post方式換取Token。
第三步:獲取用戶Nick或者其他信息
名稱 |
是否必需 | 描述 |
response_type | Y | 此處爲web應用,此值固定爲code |
client_id | Y | 即創建應用時的Appkey |
redirect_uri | Y | 登錄後的回調地址,(注意:此地址必須要與註冊應用時的回調地址相匹配,匹配規則是:注域名完全匹配 |
state | N |
該參數由應用定義,用戶授權後,授權服務器會原封不動將此參數返回。 注: 應用可通過可選參數state來記錄用戶當前所處的頁面位置信息,方便用戶登錄授權後,頁面回調到用戶之前所處的位置。 |
例如: https://oauth.taobao.com/authorize?response_type=code&client_id=12251541&redirect_uri=http://www.xx.org&state=1
[attachment=335]
用戶登陸後,顯示用戶授權頁面:
[attachment=336]
此時,用戶可以選擇“授權”或者“取消”(即不同意授權)。
如果用戶同意授權,則跳轉到應用的回調地址(redirect_uri),同時,應用獲得授權碼code
[attachment=337]
如果用戶取消授權或者訪問出錯
[attachment=338]
二、用授權碼Code換取Token應用在獲取授權碼後,發送Https Post到授權服務器,授權服務器驗證授權碼的合法性和應用的AppSecret,驗證通過後授權服務器返回Access Token給應用。
需要傳的參數有:
名稱 |
是否必需 | 描述 |
grant_type | Y | 授權類型 authorization_code 或者 refresh_token |
code | Y | 授權請求中的授權碼,即第一步獲取到的code |
redirect_uri | Y | 登錄後的回調地址,(注意:此地址必須要與註冊應用時的回調地址相匹配,匹配規則是:注域名完全匹配 |
client_id | Y | 客戶標識,即appkey |
client_secret | Y | 客戶密鑰,即appsecret |
以下爲java代碼實現授權:
第一步:
在網站設置登陸入口
- <A class="g6" title=會員登錄
href="https://oauth.taobao.com/authorize?client_id=12381144&response_type=code&state=1&redirect_uri=http://localhost:2011/WinTaobao/do.jsp" target="_blank">
登錄
第二步,在redirect網站接受登錄後返回的code,並獲得access_token
1. access_token就相當於sessionKey,後續調用其他接口可以直接使用