oAuth2.0登录授权更新时间 . 2012/03/20无线买家应用oauth2.0登录授权改造介绍为了用户数据的安全,mtop对无线买家应用的授权进行改造。自2011年10月25日起,新创建的应用已开始使用新的授权机制(论坛公告)。而在此之前创建的应用也将陆续进行改造,到2012年2月底将全部改造完毕。 无线买家应用新的登录授权启用oauth2.0协议。 无线买家应用授权方案针对appkey的应用标签为“无线买家应用”,开发者可以在开发者后台查看,参考网址:http://my.open.taobao.com/app/app_list.htm 无线买家应用授权改造流程
建议: 在修改线上环境的程序前,重新申请无线买家应用的appkey,使用oauth2.0授权方法,测试通过之后,再修改线上环境的程序。 Oauth2.0详细授权文档1. Server-side flow 2. Client-side flow 3. Native Application
备注:
此文档中在请求参数中加上view=wap则是针对无线买家应用,没有加上这个参数默认对于pc机器。
参数中的state规则是:如果应用请求传了state,则授权服务器原样返回state.
当应用发起请求时,可以传redirect_uri参数,同时应用在注册时,本身也有个callback地址。这两个的规则是: 1. 对于Server-side flow,redirect_uri是必传参数,并且redirect_uri与callback是全域名匹配。 2. 对于Client-side flow,如果传了redirect_uri,则返回到redirect_uri,并且与callback全域名匹配,如果没有传redirect_uri,则不做校验,返回到淘宝默认授权返回页面。 3. 在不可预知错误的情况下,返回到默认错误页面。
一、 Server-side flow此流程要求ISV应用有Web Server应用,能够保存应用本身的密钥以及状态,可以通过https直接访问淘宝的授权服务器。 授权过程分为两个步骤: 1. 通过用户授权获取授权码Code; 2. 用上一步获取的Code和应用密钥(AppSecret)通过Https Post方式换取Token。
1. 通过用户授权获取授权码Code,将用户界面引导到https://oauth.taobao.com/authorize 需要的参数如下:
用户登录后,会出现授权页面: 此时用户可以选择“授权“ 或 ”取消“, 若用户选择“取消“,则页面跳转至应用的回调地址,同时返回如下错误信息: error=access_denied error_description=authorize%20reject
若用户选择“授权“,则页面跳转至应用的回调地址,同时返回授权码code以及state参数。
2. 用上一步获取的Code和应用密钥(AppSecret)通过Https Post方式换取Token(访问令牌,即Sessionkey),TOP会以json文本的形式返回响应的值。 需要的参数如下:
代码示例(以Java为例):
TOP返回的参数如下:
代码示例(以Java为例):
二、 Client-side flow此流程适用于没有独立服务器的应用,但是能够借助浏览器或者JS脚本访问授权服务器。 授权过程只有一个步骤:请求授权服务器获取token(访问令牌) 引导用户授权,引导到如下页面,并附加相应的参数:https://oauth.taobao.com/authorize 需要的参数如下:
例如:https://oauth.taobao.com/authorize?response_type=token&client_id=12439149&redirect_uri=http://www./2/&state=1212&scope=item 用户登录后,页面会跳转到用户授权页面: 此时用户可以选择“授权“ 或 ”取消“, 若用户选择“取消“,则页面跳转至应用的回调地址,同时返回如下错误信息: error=access_denied error_description=authorize%20reject
若用户选择“授权“,则页面跳转至应用的回调地址,同时返回访问令牌token(即Sessionkey): TOP返回的参数如下:
示例如下: 三、 Native Application此流程适合客户端应用,同时应用无法与浏览器交互,但是可以外调用浏览器。 也就是说,用户能从浏览器获取授权码,同时,粘帖到应用程序中去。这需要设置redirect_uri=urn:ietf:wg:oauth:2.0:oob 请求示例如下: 注:此处回调地址固定为redirect_uri=urn:ietf:wg:oauth:2.0:oob 用户完成授权后,页面跳转至:
接下来,用上一步获取的Code和应用密钥(AppSecret)通过Https Post方式换取Token(访问令牌,即Sessionkey),TOP会以json文本的形式返回响应的值。 四、 Refreshing an Access Token用户如果在获取访问令牌时,同时获取到了刷新令牌,当访问令牌过期时,用户可以用刷新令牌刷新,从而延长访问令牌的时间。注意:得使用POST请求进行访问https://oauth.taobao.com/token
请求URL:https://oauth.taobao.com/token?refresh_token=xxx&client_id=12439149&client_secret=xxx&grant_type=refresh_token 需要的参数如下:
示例:https://oauth.taobao.com/token?refresh_token=xxx&client_id=12439149&client_secret=xxx&grant_type=refresh_token TOP返回的参数如下:
无线买家应用oauth2.0登录授权页面
开发者后台切换授权流程1、 登录开发者中心 从淘宝开放平台首页:http://open.taobao.com/index.htm,进入开发者中心
2、 点击“应用管理”的“应用列表” 3、 点击下方的“升级到新授权时长”
FAQ (0)我的提问 |
|