文档中心 > 开放平台

用户授权介绍

登录授权

如果您的应用和易启管开放平台对接时需要获取用户隐私数据(如商品、订单等),为保证用户数据的安全与隐私,您的应用需要取得用户的授权,即获取访问用户数据的授权令牌 Access Token (即原来的SessionKey)。这种情况下,您的应用需要引导用户完成使用易启管帐号“登录授权”的流程。该流程采用国际通用的OAuth2.0标准协议作为用户身份验证与授权协议,支持网站、手机客户端、桌面客户端。

目前易启管OAuth2.0服务支持采用两种方式获取Access Token(授权令牌),即 Server-side flow 和 Client-side flow ,详见如下说明。

特别注意

此文档描述的授权页面仅适用于PC端。

一、Server-side flow

此流程要求ISV应用有Web Server应用,能够保存应用本身的密钥以及状态,可以通过https直接访问淘宝的授权服务器。

1、请求入口地址

1)获取授权码(code)

正式环境:https://auth.smallec.com/oauth/authorize

2)获取访问令牌(access_token)

正式环境:https://auth.smallec.com/oauth/token

2、授权操作步骤

此处以正式环境获取acccess_token为例说明,如果是沙箱环境测试,需将请求入口地址等相关数据换成沙箱对应入口地址,操作流程则同正式环境一致。

实际进行授权操作时,测试的数据 client_id、client_secret、redirect_uri 均需要根据自己创建的应用实际数据给予替换,不能拿示例中给出的值直接进行测试,以免影响实际测试效果。下图为Server-side flow 授权方式流程图,以下按流程图逐步说明。

拼接授权URL > 引导用户登录授权 > 获取Code > 换取access_token

1)拼接授权url

拼接用户授权需访问url ,示例及参数说明如下:

https://auth.smallec.com/oauth/authorize?response_type=code&client_id=23075594&redirect_uri=http://www.oauth.net/2/&state=1212&view=web

名称是否必选参数值参数释义
client_id必选
等同于appkey,创建应用时获得。
response_type必选code授权类型 ,值为code。
redirect_uri必选可填写应用注册时回调地址域名。redirect_uri指的是应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uri。要求与应用注册时填写的回调地址域名一致或顶级域名一致。
state可选可自定义,如1212等;维持应用的状态,传入值与返回值保持一致。
view可选web,可选web、tmall或wap其中一种,默认为web。Web对应PC端(易启管logo)浏览器页面样式;Wap对应无线端的浏览器页面样式。

2)引导用户登录授权

引导用户通过浏览器访问以上授权url,将弹出如下登录页面。用户输入账号、密码点“登录”按钮,即可进入授权页面。

3)获取code

上图页面,若用户点“授权”按钮后,PSDM会将授权码code 返回到了回调地址上,应用可以获取并使用该code去换取access_token;

若用户未点授权而是点了“取消”按钮,则返回如下结果,其中error为错误码,error_description为错误描述。

4)换取access_token

利用linux 的curl 命令 获取access_token(授权令牌),如下;对于应用程序,可以参考文档**示例**这里的示例代码。

curl -i -d "code=OxlukWofLrB1Db1M6aJGF8x2332458&grant_type=authorization_code&client_id=23075594&  client_secret=69a1469a1469a1469a14a9bf269a14&redirect_uri=http://www.oauth.net/2/ "https://auth.smallec.com/oauth/token

名称是否必选参数值参数释义
client_id必选
等同于appkey,创建应用时获得。
client_secret必选
等同于appkey,创建应用时获得。
grant_type必选authorization_code授权类型 ,值为authorization_code
code必选
上一步获取code得到
redirect_uri必选
可填写应用注册时回调地址域名。redirect_uri指的是应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uri。要求与应用注册时填写的回调地址域名一致或顶级域名一致 。
state可选可自定义,如1212等;维持应用的状态,传入值与返回值保持一致。
view可选
Web对应PC端(易启管logo)浏览器页面样式;Wap对应无线端的浏览器页面样式。

换取access_token返回值示例

{
  "token_type": "Bearer",
  "expires_in": 31536000,
  "access_token": "d86c828583c5c6160e8acfee88ba1590",
  "refresh_token": "d86c828583c5c6160e8acfee88ba1590",
  "re_expires_in": 31536000,
  "psdm_user_id": 10000
}
Key类型示例说明
access_tokenstringd86c828583c5c6160e8acfee88ba1590Access token
token_typestringBearerAccess token的类型目前只支持bearer
expires_in    number10(表示10秒后过期)Access token过期时间
refresh_tokenstringd86c828583c5c6160e8acfee88ba1590Refresh token,可用来刷新access_token
re_expires_in    number10(表示10秒后过期)Refresh token过期时间
psdm_user_idnumber10000易启管帐号对应id

二、Client-side flow

暂时不支持。

刷新授权

通过授权获取的refresh_token,可用来刷新access token 的时长,具体见【psdm.auth.token.refresh】API接口。