开发者文档

完美校园授权方式

1、支持的授权方式

目前,完美校园开放平台支持四种授权获取access token流程和一种刷新(续期)access token的方式,第三方可根据需求和申请的授权权限大小选取合适的方式。

授权流程 说明 有效期 用途
Authorization Code 又称Web Server Flow,适用于所有有Server端配合的应用。 有效期3600秒的access token+有效期14天的refresh Token。(refresh_token时效依赖合作等级) 完美校园APP和网站接入均支持此种授权流程来获取用户信息
Refresh Token access token刷新方式,适用于所有有Server端配合的应用。 14天刷新期限 (时效依赖合作等级) 刷新access token,使用此种授权方式来刷新access token。 当access token过期后可以使用此类授权方式进行获取新的access token

2、access aoken的有效期和用户唯一标识openid

access_token有效期

遵循OAuth2.0 access token机制,access token是有有效期的。目前access token的有效期为 3600 s(秒),refresh token的有效时长为14天(时效依赖合作等级)。

access token 过期后可以在refresh token有效的时间内使用refresh token进行刷新,以获取新的access token和新的refresh token。

例如:access token失效,refresh token还有未过期,在有效期内都可以使用refresh token 刷新出新的access token和新的refresh token。新的access token的有效期同样是3600 s(秒),新的refresh token的有效时长为从刷新时间起14天(时效依赖合作等级)。

注意:

1)refresh token只能使用一次;
2)对于不返回refresh token的授权方式,不能进行access token的续期;
3)对于信任度比较高的合作方,refresh token的时间可以延长(暂未开放此功能,目前都为L1,如需修改过期时长请联系我们)

合作等级 refresh token 过期时长
L1 15天
L2 45天
L3 90天
用户标识openid

在本文档中提及到的openid为玩校用户的唯一用户标识,第三方可以使用该标识来标识一个玩校用户。该标识对于一个开发者来说是唯一的,但在不同开发者之间不同。 另外 一种情况是,同一个开发者如果申请多个应用这时需要分为两种情况:

1)玩校帐号登录,如果是玩校帐号登录,则一个开发者多个应用之间openid一致
2)一卡通认证登录,一卡通认证和玩校帐号登录不在同一帐号体系,因此同一开发者多个应用之间openid不同,请注意一点;
3)内部相关:B Module和2处相同(三方只需关注前两条说明)

openid目前最长为64个字符, 最短为12个字符。 所以openid长度为: 12-64个字符之间 。

3、授权展示方式

请求用户授权时我们提供了一个在OAuth2.0协议中没有提到的参数:display。它是用来标识不同形式的客户端所对应的不同展现形式的授权页面,其值定义如下:

1)access适用于PC端的页面展示,适用于web应用;
2)适用于手机端的页面展示,适用于web应用。

目前暂定这两种显示方式。

4、授权回调地址

为确保验证授权过程的安全,开发者必须在开发者中心预先注册应用所在的域名或URL,用以OAuth2.0检验授权请求中的“redirect_uri”参数。以便保证OAuth2.0在回调过程中,会回调到安全域名。

默认回调地址: base,为了提高安全性添加默认回调地址。如在implicit授权模式下,由于只填写分配的应用id和回调地址redirect_uri ,如果被别人查看源码或者其他方式获取到这两个参数(一般很简单的方式即可获取)。 所以在申请应用授权接口时,在回调的时候可以设置默认的回调,例如:redirect_uri = base 则会回调申请者提供的默认url. 如开发这的base为 http://www.baidu.com/call.html 等同于: redirect_uri=http://www.baidu.com/call.html 。 规定 implicit模式必须使用默认回调地址方式。

开发者在开发者中心的安全设置中填写了授权回调地址(支持至多1个授权回调地址)。

5、授权权限列表

每一个Access Token代表“一个用户”或“开放平台”授予“一个应用”的“一系列数据访问操作权限”,如果您访问的为高级接口,在用户登录界面会让用户授权该高级接口。