博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘宝 OAuth2.0 的登录验证与授权
阅读量:4300 次
发布时间:2019-05-27

本文共 1964 字,大约阅读时间需要 6 分钟。

最近老板有意与淘宝合作,网站需要支持淘宝登陆验证与授权,所以研究了下淘宝的第三方登陆,基于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。参数:

参数 参数值 说明
* client_id   即开发者的APPKEY
* response_type code 相应类型,填code,即授权码
* redirect_uri   回调地址。此地址是开发者注册应用时填写的回调地址(如果不一致,将返回错误)。
scope   访问区域。
state   用于维持应用状态,淘宝服务器将回填这个值。
view   可选值:web(默认)、tmall、wap。
以下是一个请求授权码的示例:
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表中创建等等)

.......

你可能感兴趣的文章
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>