淘宝 OAuth2.0 的登录验证与授权
来源:互联网 发布:手机淘宝店招在线制作 编辑:程序博客网 时间:2024/05/08 22:45
最近老板有意与淘宝合作,网站需要支持淘宝登陆验证与授权,所以研究了下淘宝的第三方登陆,基于OAuth2.0(其实也没啥好说的,原理都一样,主要是一些细节)。写blog的原因是当时研究这玩意是发现文档只有两个版本,一个是官网提供的(http://open.taobao.com/doc2/detail.htm?articleId=118&docType=1&treeId=null),一个是写了一半的技术文档(http://blog.chinaunix.net/uid-25528943-id-3127111.html),却被无数人转载,本人实在看不下去了,功能走通上线后,有时间就把这文档写了,让更多的人可以学习。
1)申请app ID 和 app secret (http://my.open.taobao.com/),然后注册应用,这里应该有让你填个回调地址,即redirect_uri(如果没填,也还可以在控制台-应用设置-基本信息,勾选需要商家授权,这时填你的回调地址:www.xxx.com)
2) 开发者通过 https://oauth.taobao.com/authorize 获取用户授权码,即code。参数:
以下是一个请求授权码的示例:
https://oauth.taobao.com/authorize?response_type=code&client_id=12539988&redirect_uri=http://www.xxx.com/taobao/auth&state=1
收到请求后,淘宝服务器返回值:
参数说明
code授权码 正常结果。
error错误码 异常时返回
error_description错误描述 异常时返回。
如果淘宝服务器返回的值有code,恭喜你,已经完成第二步,如果错误请在http://open.taobao.com/doc2/detail.htm?articleId=118&docType=1&treeId=null的最后错误排查中排查自己的错误。
3)拿到授权码code后,就可以换取用户基本信息。
用post请求
https://oauth.taobao.com/token?grant_type=authorization_code&response_type=code&client_id=23294542&client_secret=27552d4ac86de9603cd4fe0d125e6062&redirect_uri=http%3A%2F%2Fwww.xxx.com%2F&code=X9XPfI9JVHiTgKME6JyAXDAD315945(填写淘宝服务器返回给你code)
这样你就可以得到类似的数据:
{
"taobao_user_nick": "taobaonick",
"re_expires_in": 0,
"expires_in": 7776000,
"expire_time": 1459911894299,
"r1_expires_in": 1800,
"w2_valid": 1452135894299,
"w2_expires_in": 0,
"w1_expires_in": 1800,
"r1_valid": 1452137694299,
"r2_valid": 1452135894299,
"w1_valid": 1452137694299,
"r2_expires_in": 0,
"token_type": "Bearer",
"refresh_token": "620251524f72a26b6c8ecd1ZZe29bbbxxx",
"open_uid": "AAENArTTACOmNcx4Z-_D0qU2",
"refresh_token_valid_time": 1452135894299,
"access_token": "620141595ca09af54aa5918ZZeafd0c0fe770bb07xxx"
}
这样整个认证过程就结束了,你接下来要做的是就是创建两个url,一个是login,一个是auth,然后数据库存从淘宝服务器上得到的这些信息(或者再你的user表中创建等等)
.......
- 淘宝 OAuth2.0 的登录验证与授权
- 淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站
- 淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站
- 基于OAuth2.0的登录验证授权方式获取sessionkey
- OAuth2.0协议 第三方登录 授权
- OAuth2.0协议 第三方登录 授权
- Oauth2.0协议授权与认证
- 基于OAuth2.0协议的QQ第三方授权登录iOS代码分析
- 使用Oauth2.0实现微博授权登录
- 基于OAUTH2.0的授权操作
- 微信企业号:OAuth2.0微信授权验证
- OAuth2.0 SSO授权
- OAuth2.0授权方式
- OAuth2.0网页授权
- OAuth2.0网页授权
- OAuth2:客户端验证授权(Resource Owner Password)类型的开放授权
- 微信小知识之oauth2授权登录流程
- php oauth2 微信授权登录
- uva1391Astronauts【2-SAT】
- Application lifecycle
- DSP28335-ePWM
- 响应式布局
- linux /sys目录下的各个子目录说明
- 淘宝 OAuth2.0 的登录验证与授权
- Android网络请求心路历程
- python exception
- 成功的因素是什么?
- BZOJ_P4326[NOIP]2015 运输计划(LCA+Tarjan+二分)
- 基于 Android NDK 的学习之旅----- C调用Java(附源码)
- [Leetcode]5.Longest Palindromic Substring @ Python
- 基于 Android NDK 的学习之旅-----数据传输一(基本数据类型和数组传输)(附源码)
- Google图算法引擎Pregel介绍