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了,授权流程完成,代码里也有天猫的入口之类的判断,估计你们也不会用到的,就直接不讲了。也有一小部分小度对接的代码,虽然也删得差不多了。
最重要的:
源码地址:下载地址