用户凭证
- 教育号为登录到第三方应用的用户生成用户一个代表当前身份的凭证(用户态access_token)
- 第三方应用应该在服务端缓存用户凭证,用于后续调用教育号开放API获取用户相关信息。
- 第三方应用不能将用户凭证下发到客户端,以免泄漏用户敏感信息,引发安全性问题。
- 建议第三方应用为用户生成应用内的登录态token(与教育号用户凭证一一对应),下发到前端,用于识别后续用户请求。
获取用户凭证
接口说明:此接口返回的 access_token 用于完成登录态下发,查询用户信息
请求地址: https://sso.qq.com/open/access_token
请求方法: GET、POST ( HTTPS )
注意:POST请求需要指定Content-Type为x-www-form-urlencoded
请求参数:
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 教育号应用id,在教育号开放平台完成应用注册后生成 |
secret | 是 | 教育号应用secret,在教育号开放平台完成应用注册后生成 |
code | 是 | 应用跳转地址中获取的 code |
grant_type | 是 | 此时填: "authorization_code" |
返回参数:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
msg | string | 返回码的文本描述内容 |
requestid | string | 请求 id |
data | object | |
access_token | string | 用户凭证 |
expires_in | uint32 | 过期时间, 默认 7200秒 |
refresh_token | string | refresh_token,用于更新 access_token,过期时间 15 天 |
请求示例:
https://sso.qq.com/open/access_token?appid=xxxx&secret=265b2b7&code=581879d8ac77948&grant_type=authorization_code
返回示例:
{
"code": 0,
"msg": "请求成功",
"requestid": "463b215ea1d466a8",
"data": {
"access_token": "a51kiS9ooVgQRfhVqLCrmTsj5kFGu1JZnKwyctgbQB.QxUJnHSmGLclVKyhgijlhXfXfdjELsfZ",
"expires_in": 7200,
"refresh_token": "38NpHr4Ax51wUedoST3HWKMb5BJp88pomd7Wz2p772P2SWJvD1geWKxjzC1dF816rsyBXgeJVG8Hnb6oaAK3yYTTDuLiztSwcf9vUUh.SmqTWjhtrOftpmLfNaKNsEjvFnvIvwMcliiYlBAdEEFEOpssxGrmzJRlqhPSVMBc"
}
}
更新用户凭证
请求地址: https://sso.qq.com/open/refresh_token
请求方法: GET (HTTPS)
请求参数:
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 填教育号平台应用id |
refresh_token | 是 | 填上一步获取到的refresh_token参数 |
grant_type | 是 | 填 "refresh_token" 字符串 |
请求示例:
https://sso.qq.com/open/refresh_token?appid=xxxx&refresh_token=581879d8ac77948&grant_type=refresh_token
返回参数:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
msg | string | 返回码的文本描述内容 |
requestid | string | 请求 id |
data | object | |
access_token | string | 用户凭证 |
expires_in | uint32 | 过期时间, 默认7200秒 |
refresh_token | string | refresh_token,用于更新 access_token,过期时间 15 天 |
返回示例:
{
"code": 0,
"msg": "请求成功",
"requestid": "102d02d392911261",
"data": {
"access_token": "G3eBvGPjgqJPf2hvszeyYgxUbVhVZh4E79.rujydCcdhtTZpKnkyrOTfrlNBhfJMElE",
"expires_in": 7200,
"refresh_token": "37QZ1UiTUsaxP7u6pq41CfcQRDg8gqcmexSyvo243HMjwCejASNZjqV8gfTMgkqpkRtXfhaMqfouUXnvD4EWtMW3noAp.kyshHAmwrjIrcDMjcuiLhLiSWdbksFxKuwPPAmbCxkIKGziQvmIXhPIUAHwJHMHf"
}
}
用户登出
用户已登录状态下,执行登出操作,前端调用以下接口完成登出,教育号将清空当前用户指定应用的登录态
https://sso.qq.com/open/logout?appid=APPID