1.有什么協議問題,請先看對接文檔
2.基礎流程請看上一篇文章,已經講得比較詳細了。
3.代碼寫得渣,有什么可以優化的地方麻煩提一下,噴我也沒啥用。
運行(調試)流程:
本機測試(內網模擬授權流程):
編譯代碼,檢查配置文件,將 web.config (里面也有備注說明)中的 serverUrl 換成你的IP地址(內網測試),如我本地的的 http://192.168.1.96:8030/
<add key="serverUrl" value="http://192.168.1.96:8030/" /><!--你發布到IIS上的地址,域名-->
啟動IIS,訪問你的地址
模擬地址為:http://ip:port/Web/Home/IndexLogin?client_id=myTest&response_type=code&redirect_uri=http://www.baidu.com&state=0
我本機訪問為:
http://192.168.1.96:8030/Web/Home/IndexLogin?client_id=myTest&response_type=code&redirect_uri=http://www.baidu.com&state=0
賬號密碼隨便輸(代碼里默認為 true 不做校驗,具體自行處理下)
如果配置沒問題,將跳轉到如下地址:
跳轉地址:
https://www.baidu.com/?code=39a25d4c38dc4113b0f9fe1afb8049d96e02cd98cd25417385953ad402c6d5bd
把跳轉得到的code 復制出來。
39a25d4c38dc4113b0f9fe1afb8049d96e02cd98cd25417385953ad402c6d5bd
打開 POSTMAN (如果沒有,自己找一個其他的代替)。
選擇 Post
url填寫為:http://192.168.1.96:8030/Web/Home/TestToken
Body:選擇form-data,
填入以下的 key 和 value
key | value |
grant_type | authorization_code |
client_id | myTest |
client_secret | myTest |
code | 39a25d4c38dc4113b0f9fe1afb8049d96e02cd98cd25417385953ad402c6d5bd(也就是上面得到的code) |
redirect_uri | http://www.baidu.com |
refresh_token |
如下圖:
{ "access_token": "zP8ct6ghd68Apt1X671PM3AHpB21pP223EcxsEbVZWIhq1t4IrLXblR2sNh_Zr3h2oiUKbb2sICVxXBrEtGdVjo2f2rvp-wO91mO69xCQu3jUGmbNYmdigHbv0ZUL9F2x9LZUOraOOWKitGGJcnCkFsVRcXe6Nq-dDq1FU-HHZOgwYA0Lo0WmqvkvkRbVdRbzSXymZ9myyThpDaAJnWGDPuzYcCbTDuoMCPYHnVrrpA", "refresh_token": "e9314adc61bf4db8b23e0e57bd739c9b3c8b4e79ec3a452ab075052a5cda40a6", "expires_in": 86900 }
正常響應如圖中所示,這樣,授權就完成了。
refreshToken 的模擬操作和上面的操作是類似的。
將上方得到的 refresh_token 復制出來
打一個新的 PostMan 窗口,輸入如下參數:
key | value |
grant_type | refresh_token |
client_id | myTest |
client_secret | myTest |
code | |
redirect_uri | http://www.baidu.com |
refresh_token | e9314adc61bf4db8b23e0e57bd739c9b3c8b4e79ec3a452ab075052a5cda40a6(也就是上面得到的 refresh_token ) |
點擊 Send,可看到結果:
天貓平台的設置可以參考如下圖:
O了,授權流程完成,代碼里也有天貓的入口之類的判斷,估計你們也不會用到的,就直接不講了。也有一小部分小度對接的代碼,雖然也刪得差不多了。
最重要的:
源碼地址:下載地址