Skip to content

用户授权

用户授权为委托授权的一种,委托人为普通用户。授权第三方应用获取所属用户相关数据。

授权流程

第三方应用需要获取用户信息(如:头像、用户名、用户文件等)时,由开放平台发起的授权流程,用户完成授权后,第三方应用可通过获取到的access_token进行数据获取。

img

​ 用户授权时序图

接口说明

一、构造授权跳转链接,用户授权,获取临时授权码code

根据定义,构造授权跳转链接,用户同意授权后,会重定向跳转到指定的 redirect_uri,并附带 code、state 两个参数。

请求说明

请求地址配置域名+/o+/oauth+/v1/authorize
请求方法GET
签名方式
权限要求

查询参数(Query)

参数参数类型是否必填说明
client_idstring应用唯一标识
response_typestring授权类型,固定为:code
redirect_uristring授权后重定向的回调链接地址
scopestring用户授权的权限,多个值以英文逗号分割,参考《权限说明》
statestring由用户自定义,授权成功后会通过重定向接口带回
auto_grantboolean是否自动授权,如果已经登录且auto_grant为true则不跳转到授权界面

请求地址示例

[GET] 配置域名+/o+/oauth+/v1/authorize?response_type=code&client_id=APPID&redirect_uri=REDIRECTURI&scope=SCOPE&state=STATE

用户访问三方应用构造的授权链接地址:

  • 参数auto_grant为true,用户已经登陆,那么则直接跳转至授权回调地址
  • 参数auto_grant为false,用户还未登陆
    • 先重定向至应用管理平台授权页面,判断用户未登录,那么重定向至登录页面

img

  • 登录成功之后,跳转至授权页面

img

  • 点击允许,从服务端获取临时授权码code,并调转至授权回调地址
  • 参数auto_grant为false,用户已经登陆
    • 先重定向至授权页面,判断用户已经登陆,那么等待用户操作

img

  • 点击允许,从服务端获取临时授权码code,并调转至授权回调地址
  • 参数auto_grant为true,用户还未登录
    • 先重定向至应用管理平台授权页面,判断用户未登录,那么重定向至登录页面

img

  • 登录成功之后,跳转至授权页面

img

  • 无需用户操作,自动获取临时授权码code,并跳转至授权回调地址

响应体

用户访问授权链接,并登录后,会跳转至授权页。

  1. 用户登录页面

img

  1. 用户授权页面

img

  1. 用户同意授权

如果用户点击同意授权,页面将重定向至授权链接中的redirect_uri地址,并携带临时授权码(code)和用户自定义参数(state)。示例:redirect_uri?code=CODE&state=STATE

注意:code 作为换取 access_token 的票据,仅可使用一次且 10 分钟未被使用自动过期。

说明:

请求中的redirect_uri会进行校验,必须先配置回调授权地址(当前仅校验host:port)

二、获取或刷新access_token

服务端调用该接口获取或刷新用于访问用户授权凭证access_token。

注意:获取到的 access_token 安全级别比较高,后续刷新 access_token、通过 access_token 获取用户信息等步骤,必须从服务器调用接口。

请求说明

请求地址配置域名+/o+/oauth+/v1/token
请求方法POST
签名方式WPS-4签名(url仅签名/v1/token部分)
权限要求

请求头(Header)

名称是否必须说明
Content-Type固定为:application/x-www-form-urlencoded
Wps-Docs-Date取当前时间,示例:Wed, 23 Jan 2013 06:43:08 GMT
Wps-Docs-AuthorizationAuthorization计算方法参考《签名说明

请求体(Body)

参数参数类型是否必填说明
grant_typestring授权类型,authorization_code:授权码模式refresh_token:刷新授权码
codestring临时授权码,grant_type为authorization_code时必填
redirect_uristring授权回调地址,grant_type为authorization_code时必填
refresh_tokenstring刷新凭证,grant_type为refresh_token时必填
scopestring权限项,grant_type为authorization_code时非必填

响应体(Response)

名称类型说明
codeinteger状态码,非0表示失败,参照《状态码说明》
msgstring错误信息,成功时统一为Success
access_tokenstring访问凭证
token_typestring固定为Bearer
expires_ininterger凭证有效期,单位为秒
refresh_tokenstring刷新凭证

响应体示例

json
{
  "code": 0,
  "access_token": "ACCESSTOKEN",
  "token_type": "Bearer",
  "expires_in": "EXPIRES",
  "refresh_token": "REFRESHTOKEN"
}