关于用户凭证(access_token)
应用接入公益开放平台统一登录,并且用户登录应用成功后,由公益平台颁发给应用的一个代表当前用户身份的凭证。应用应该在服务端缓存用户凭证,用于后续调用开放API获取用户相关信息。
重要提醒
由于应用的 secret 和获取到的access_token安全级别都非常高,必须只保存在服务器端,【不允许】传给用户端!access_token、通过access_token获取用户信息等步骤,也必须从服务器端发起。
建议第三方应用为用户生成应用内的登录态token(与开放平台生成的用户凭证一一对应),下发到前端,用于应用服务端后续识别用户端请求。
获取用户凭证
接口说明:此接口返回的 access_token 用于调用使用用户凭证鉴权的接口
请求地址: https://login.gongyi.qq.com/oauth2/access_token
请求方法: POST ( HTTPS )
请求参数:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
appid | string | 是 | 应用id,在公益开放平台完成应用注册后获得 |
secret | string | 是 | 应用secret,在公益开放平台完成应用注册后获得 |
code | string | 是 | 应用跳转地址中获取的 code |
grant_type | string | 是 | 此时填: "authorization_code" |
返回参数:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
msg | string | 返回码的文本描述内容 |
data | object | |
access_token | string | 用户凭证 |
expires_in | uint32 | 过期时间, 默认 7200秒 |
refresh_token | string | refresh_token,用于更新 access_token,过期时间 15 天 |
app_uid | string | 用户id |
scope | string | 用户授权的作用域,使用逗号(,)分隔 |
请求示例:
https://login.gongyi.qq.com/oauth2/access_token?appid=xxxx&secret=265b2b7&code=581879d8ac77948&&grant_type=authorization_code
返回示例:
{
"code": 0,
"msg": "请求成功",
"data": {
"access_token": "a51kiS9ooVgQRfhVqLCrmTsj5kFGu1JZnKwyctgbQB.QxUJnHSmGLclVKyhgijlhXfXfdjELsfZ",
"expires_in": 7200,
"refresh_token": "38NpHr4Ax51wUedoST3HWKMb5BJp88pomd7Wz2p772P2SWJvD1geWKxjzC1dF816rsyBXgeJVG8Hnb6oaAK3yYTTDuLiztSwcf9vUUh.SmqTWjhtrOftpmLfNaKNsEjvFnvIvwMcliiYlBAdEEFEOpssxGrmzJRlqhPSVMBc",
"app_uid": "ocroJj8OgwzTr28868ls1aIg124Y",
"scope": "base"
}
}
更新用户凭证
请求地址: https://login.gongyi.qq.com/oauth2/refresh_token
请求方法: GET (HTTPS)
请求参数:
参数 | 必填 | 说明 |
---|---|---|
appid | 是 | 填公益开放平台应用id |
refresh_token | 是 | 填上一步获取到的refresh_token参数 |
grant_type | 是 | 填 "refresh_token" 字符串 |
请求示例:
https://login.gongyi.qq.com/oauth2/refresh_token?appid=xxxx&refresh_token=581879d8ac77948&grant_type=refresh_token
返回参数:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
msg | string | 返回码的文本描述内容 |
data | object | |
access_token | string | 用户凭证 |
expires_in | uint32 | 过期时间, 默认7200秒 |
refresh_token | string | refresh_token,用于更新 access_token,过期时间 15 天 |
app_uid | string | 用户id |
scope | string | 用户授权的作用域,使用逗号(,)分隔 |
返回示例:
{
"code": 0,
"msg": "请求成功",
"data": {
"access_token": "G3eBvGPjgqJPf2hvszeyYgxUbVhVZh4E79.rujydCcdhtTZpKnkyrOTfrlNBhfJMElE",
"expires_in": 7200,
"refresh_token": "37QZ1UiTUsaxP7u6pq41CfcQRDg8gqcmexSyvo243HMjwCejASNZjqV8gfTMgkqpkRtXfhaMqfouUXnvD4EWtMW3noApkyshHAmwrjIrcDMjcuiLhLiSWdbksFxKuwPPAmbCxkIKGziQvmIXhPIUAHwJHMHf",
"app_uid": "ocroJj8OgwzTr28868ls1aIg124Y",
"scope": "base"
}
}