账号授权
如果用户访问第三方应用,可以通过openapi授权机制,来获取用户基本信息,进而实现业务逻辑。
IP白名单
1、AccessToken相关接口需要设置IP白名单, 例如在获取用户信息时;
2、设置为和回调地址域名指向IP相同;
域名白名单
1、在调用RPC相关接口时需要设置域名白名单;
授权回调地址的说明
1、在通过openapi请求用户应用授权之前,开发者需要先到开放平台官网中的“基本设置 - 回调地址”的配置选项中,修改授权回调地址。请注意,这里填写的是URL不是域名,因此需要加 http:// 等协议头;
2、在授权登录时,会根据开放平台设置的回调地址检测请求参数redirect_uri的合法性;
3、如果用户已经授权,则登录成功后直接重定向到回调地址;
授权的作用域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
https://openapi.wps.cn/oauthapi/v2/authorize?response_type=code&appid=APPID&autologin=false&redirect_uri=REDIRECTURI&scope=SCOPE&state=STATE
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
appid | string | required | 应用唯一标识 |
response_type | string | required | 参数值必须为code |
redirect_uri | string | required | 授权后重定向的回调链接地址 |
scope | string | required | 用户授权的作用域(get_user_info,…),使用逗号(,)分隔 |
state | string | optional | 重定向后会带上state参数 |
autologin | bool | optional | 是否自动跳转,如果已经授权且autologin为true则不跳转到授权界面 |
下图为授权页面
用户同意授权后
如果用户同意授权,页面将跳转至 redirect_uri?code=CODE&state=STATE
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
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
appid | string | required | 应用唯一标识 |
appkey | string | required | 应用密钥 |
code | string | required | 填写第一步获取的code参数 |
Header说明
Header名称 | 是否必须 | 说明 |
---|---|---|
Content-type | required | 值为: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
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
appid | string | required | 应用唯一标识 |
appkey | string | required | 应用密钥 |
refresh_token | string | required | 填写通过code获取到的refresh_token参数 |
Header说明
Header名称 | 是否必须 | 说明 |
---|---|---|
Content-type | required | 值为: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_token | string | required | access_token |
appid | string | required | 应用唯一标识 |
openid | string | required | 用户标识openid |
Header说明
Header名称 | 是否必须 | 说明 |
---|---|---|
Content-type | required | 值为: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_token | string | required | access_token |
appid | string | required | 应用唯一标识 |
scope | string | required | 用户授权的作用域(share_file,upload_file,get_user_info) |
Header说明
Header名称 | 是否必须 | 说明 |
---|---|---|
Content-type | required | 值为:application/json |
返回
{ "result":0, "rpc_token":"RPCTOKEN"}
6, 检测RPCTOken的权限
检测RPCTOken的权限
接口说明
检测rpc_token是否有scope相应的授权。
请求说明
[POST] https://openapi.wps.cn/oauthapi/v2/rpc/scope/authorize
参数说明
参数 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
rpc_token | string | required | rpc_token |
appid | string | required | 应用唯一标识 |
scope | string | required | 用户授权的作用域 |
Header说明
Header名称 | 是否必须 | 说明 |
---|---|---|
Content-type | required | 值为:application/json |
返回
{ "result":0, "authorized":1}