账号授权

如果用户访问第三方应用,可以通过openapi授权机制,来获取用户基本信息,进而实现业务逻辑。

IP白名单

1、AccessToken相关接口需要设置IP白名单, 例如在获取用户信息时;

2、设置为和回调地址域名指向IP相同;

image

域名白名单

1、在调用RPC相关接口时需要设置域名白名单;

image

授权回调地址的说明

1、在通过openapi请求用户应用授权之前,开发者需要先到开放平台官网中的“基本设置 - 回调地址”的配置选项中,修改授权回调地址。请注意,这里填写的是URL不是域名,因此需要加 http:// 等协议头;

2、在授权登录时,会根据开放平台设置的回调地址检测请求参数redirect_uri的合法性;

3、如果用户已经授权,则登录成功后直接重定向到回调地址;

image

授权的作用域scope说明

授权作用域,多个用逗号(,)分开;

scope说明
get_user_info获取用户信息
added_value_service增值服务(支付相关)
upload_file上传文件
share_file分享文件
get_files获取文件
online_editing在线编辑
online_preview在线预览

授权access_token说明

1、在用户允许授权后,可以获取到一个授权特有的接口调用凭证(授权access_token),通过应用授权access_token可以进行授权后接口调用,如获取用户基本信息;

关于UnionID机制

1、如果开发者拥有多个应用,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个开放平台下的不同应用,unionid是相同的;

关于OpenID机制

1、用户唯一标识,在不同应用中同一用户的openid不同;

目录

1, 用户同意授权,获取code2, 通过code换取网页授权access_token3, 刷新access_token (可选)4, 拉取用户信息5, 获取RPCTOken6, 检测RPCTOken的权限

1, 用户同意授权,获取code

用户同意授权,获取code

接口说明

用户同意授权,获取code

请求说明

[GET] https://openapi.wps.cn/oauthapi/v2/authorize

  1. https://openapi.wps.cn/oauthapi/v2/authorize?response_type=code&appid=APPID&autologin=false&redirect_uri=REDIRECTURI&scope=SCOPE&state=STATE

参数说明

参数参数类型是否必须说明
appidstringrequired应用唯一标识
response_typestringrequired参数值必须为code
redirect_uristringrequired授权后重定向的回调链接地址
scopestringrequired用户授权的作用域(get_user_info,…),使用逗号(,)分隔
statestringoptional重定向后会带上state参数
autologinbooloptional是否自动跳转,如果已经授权且autologin为true则不跳转到授权界面

下图为授权页面

image

用户同意授权后

如果用户同意授权,页面将跳转至 redirect_uri?code=CODE&state=STATE

  1. code说明 code作为换取access_token的票据,10分钟未被使用自动过期。

2, 通过code换取网页授权access_token

通过code换取网页授权access_token

接口说明

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

请求说明

[GET] https://openapi.wps.cn/oauthapi/v2/token

参数说明

参数参数类型是否必须说明
appidstringrequired应用唯一标识
appkeystringrequired应用密钥
codestringrequired填写第一步获取的code参数

Header说明

Header名称是否必须说明
Content-typerequired值为:application/json

返回

{ "result":0, "token":{ "appid":"APPID", "expires_in":EXPIRES, "access_token":"ACCESSTOKEN", "refresh_token":"REFRESHTOKEN", "openid":"OPENID" }}

3, 刷新access_token (如果需要)

刷新access_token

接口说明

由于access_token的有效期较短,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为90天,当refresh_token失效之后,需要用户重新授权。使用refresh_token刷新access_token时,会返回一个新的refresh_token。

请求说明

[POST] https://openapi.wps.cn/oauthapi/v2/token/refresh

参数说明

参数参数类型是否必须说明
appidstringrequired应用唯一标识
appkeystringrequired应用密钥
refresh_tokenstringrequired填写通过code获取到的refresh_token参数

Header说明

Header名称是否必须说明
Content-typerequired值为:application/json

返回

{ "result":0, "token":{ "appid":"APPID", "expires_in":EXPIRES, "access_token":"ACCESSTOKEN", "refresh_token":"REFRESHTOKEN", "openid":"OPENID" }}

4, 拉取用户信息

拉取用户信息

接口说明

拉取用户信息

请求说明

[GET] https://openapi.wps.cn/oauthapi/v2/user

参数说明

参数参数类型是否必须说明
access_tokenstringrequiredaccess_token
appidstringrequired应用唯一标识
openidstringrequired用户标识openid

Header说明

Header名称是否必须说明
Content-typerequired值为:application/json

返回

{ "result":0, "user":{ "nickname":"NICKNAME", "avatar":"AVATAR", "sex":"SEX", "openid":"OPENID", "unionid":"UNIONID", "regtime":REGTIME }}

5, 获取RPCTOken(RPC)

获取RPCTOken

接口说明

由于access_token的安全级别比较高,当需要客户端调用某些接口时,需要通过access_token换取一个rpc_token。客户端可以通过rpc_token直接调用接口。

请求说明

[POST] https://openapi.wps.cn/oauthapi/v2/rpc/token

参数说明

参数参数类型是否必须说明
access_tokenstringrequiredaccess_token
appidstringrequired应用唯一标识
scopestringrequired用户授权的作用域(share_file,upload_file,get_user_info)

Header说明

Header名称是否必须说明
Content-typerequired值为:application/json

返回

{ "result":0, "rpc_token":"RPCTOKEN"}

6, 检测RPCTOken的权限

检测RPCTOken的权限

接口说明

检测rpc_token是否有scope相应的授权。

请求说明

[POST] https://openapi.wps.cn/oauthapi/v2/rpc/scope/authorize

参数说明

参数参数类型是否必须说明
rpc_tokenstringrequiredrpc_token
appidstringrequired应用唯一标识
scopestringrequired用户授权的作用域

Header说明

Header名称是否必须说明
Content-typerequired值为:application/json

返回

{ "result":0, "authorized":1}