传化开放平台采用标准Oauth2.0协议进行鉴权。
平台开放中的接口根据是否需要用户授权,可分为需要用户授权接口和公共接口量大类。下面分别介绍 这量大类接口的访问步骤。
传化开放平台中的接口按是否需要用户登录分为两大类:
对于用户隐私接口的访问,需要用户进行登录授权,对于公共接口,不需要用户登录授权。
传化开放平台采用标准Oauth2.0
协议进行接口授权,访问传化开放平台的任何一个接口前,都需要先获取一个AccessToken
。
传化开放平台支持的授权方式:
-client_credentials: 对于公共接口访问,采用Oauth2.0
的client_credentials
授权模式。
-code: 对于隐私接口访问,采用Oauth2.0
的code
授权模式。
-password:对于自由客户端接口访问,采用Oauth2.0
的password
授权模式
公共接口不含用户隐私信息,不需要用户授权,但仍需要对访问的客户端授权。
对于公共接口的授权,我们采用了Oauth2.0的client_credentials模式。
调用公共接口需要如下几步:
token
接口获取AccessToken
AccessToken
访问接口从公共接口调用步骤来看,它少了用户授权这一步,可以直接调用token
接口获取AccessToken
。
token
接口获取AccessToken
直接调用token
接口获取AccessToken
:
https://open.tf56.com/openGateway/oauth/token
此时token
接口只需要如下参数:
client_credentials
,告诉授权服务器采用client_credentials
授权模式返回结果:
返回结果示例:
{
"scope":"商铺 good-list op-truck open-demo",
"expires_in":1800,
"token_type":"uuid",
"access_token":"d45e242ad95238cfa9a24436153adfa0"
}
AccessToken
访问接口在传化开放平台中,无论访问哪种接口,都需要携带一个AccessToken
。获得了AccessToken
,就获得了访问相关接口的权限。
比如我们的开放平台API中有这样一个API:
https://open.tf56.com/openGateway/oauthentry/tf56.open.demo/1/sayHello
我们在调用时只需要附上获取的AccessToken
即可,比如我们上一步获取的AccessToken
为:d45e242ad95238cfa9a24436153adfa0
,则调用方法如下:
https://open.tf56.com/openGateway/oauthentry/tf56.open.demo/1/sayHello?access_token=d45e242ad95238cfa9a24436153adfa0
开放平台提供的与用户隐私相关的接口,如用户名、头像等用户基本信息接口,都是需要获取用户身授权认证的。对于隐私接口的访问,传化开放平台采Oauth2.0
的code
模式。
调用用户隐私接口需要如下几步:
auth
接口获取授权码authCode
authCode
换取AccessToken
AccessToken
访问接口下面详细介绍这几个步骤。
authCode
调用开放平台auth
接口,将用户引导到授权界面,auth
接口的接口名为:
https://open.tf56.com/openGateway/oauth/
auth
接口有需要如下几个参数:
code
,告诉授权服务器期望返回一个code
码举例说明:
https://open.tf56.com/openGateway/oauth/?response_type=code&client_id=1&redirect_uri=http://test.tf56.com&state=asdfadsklj&scope=all
当应用发送上面请求后,开放平台会返回一个授权页面:
若此时用户没有登录,用户需输入用户名密码进行登录授权,授权之后,系统会通过请求中的redirect_uri
返回一个授权码:code
,并将state
字段的值原封不动的返回:
http://www.yourdomain.com/?state=123456&code=61ee64e55e08383ca93bdf045e24fa2b
注意,redirect_uri
必须与注册客户端时的一致。
authCode
换取AccessToken
用authCode
换取AccessToken
需调用token
接口:
https://open.tf56.com/openGateway/oauth/token
token
接口需要如下参数:
authorization_code
,告诉授权服务器采用authorization_code
授权模式code
返回结果:
返回结果示例:
{
"scope": "all",
"expiresin": 25200,
"tokentype": "uuid",
"refreshtoken": "ec63769442ac34c5a698d3a6d2b07654",
"accesstoken": "db4439a4ee2d3d0795e03013d227fc0d"
}
注意,此接口返回结果中还返回了一个refresh_token
,refresh_token
的有效期比access_token
长,可以待access_token
过期后换取一个新的access_token
。
AccessToken
访问接口在传化开放平台中,无论访问哪个接口,都需要携带一个AccessToken
。获得了AccessToken
,就获得了访问相关接口的权限。
比如我们的开放平台API中有这样一个API:
https://open.tf56.com/openGateway/oauthentry/open.demo/1/queryUserInfo
我们在调用时只需要附上获取的AccessToken
即可:
https://open.tf56.com/openGateway/oauthentry/open.demo/1/queryUserInfo?AccessToken=3809952b178c4f1196cfb54c2891ca0a
接口分为用户隐私接口和公共接口,在开放平台的API文档中,用户隐私接口被描述为需要登录的接口,公共接口被被描述为不需要登录的接口。
所有接口访问都需要先获取AccessToken
,访问任何一个接口都需要携带AccessToken
,AccessToken
是开放平台授权的唯一凭证。