完美校园授权方式
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代表“一个用户”或“开放平台”授予“一个应用”的“一系列数据访问操作权限”,如果您访问的为高级接口,在用户登录界面会让用户授权该高级接口。