开发文档

聚合登录介绍

聚合登录,就是利用用户在第三方平台上已有的账号来快速完成自己应用的登录流程。这里的第三方平台,是指QQ、微信、微博、百度等平台。通过本站的聚合登录接口,你的网站可以登录获取相应的用户信息和授权信息,例如uid、token、用户昵称、头像等。本站的聚合登录完全符合OAuth2.0身份鉴权机制。

接口协议规则

传输方式:HTTP

数据格式:JSON

字符编码:UTF-8

聚合登录流程
Step1:获取跳转登录地址
请求URL:
https://login.gdcxywl.cn/connect.php?act=login&appid={你的appid}&appkey={你的appkey}&type={登录方式}&redirect_uri={返回地址}
其中登录方式对应值:
对应值 登录方式名称
qq QQ
wx 微信
qywx 企业微信
gitee Gitee
douyin 抖音
返回格式:
{
  "code": 0,
  "msg": "succ",
  "type": "qq",
  "url": "https://graph.qq.com/oauth2.0/XXXXXXXXXX"
}
返回参数说明:
参数名 参数类型 参数说明 参数示例
code int 返回状态码 0为成功,其它值为失败
msg string 返回信息 返回错误时的说明
type string 登录方式 qq
url string 登录跳转地址 https://graph.qq.com/oauth2.0/XXXXXXXXXX
qrcode string 登录扫码地址 此地址仅微信和支付宝返回

Step2:跳转到登录地址
登录地址为上一步返回的url的值。

Step3:登录成功会自动跳转到指定的redirect_uri,并跟上Authorization Code
例如回调地址是:www.qq.com/my.php,则会跳转到:
http://www.qq.com/my.php?type=qq&code=520DD95263C1CFEA0870FBB66E******

Step4:通过Authorization Code获取用户信息
请求URL: https://login.gdcxywl.cn/connect.php?act=callback&appid={appid}&appkey={appkey}&type={登录方式}&code={code}
返回格式:
{
  "code": 0,
  "msg": "succ",
  "type": "qq",
  "access_token": "89DC9691E274D6B596FFCB8D43368234",
  "social_uid": "AD3F5033279C8187CBCBB29235D5F827",
  "faceimg": "https://thirdqq.qlogo.cn/g?b=oidb&k=3WrWp3peBxlW4MFxDgDJEQ&s=100&t=1596856919",
  "nickname": "大白",
  "location": "XXXXX市",
  "gender": "男",
  "ip": "1.12.3.40"
}
返回参数说明:
参数名 参数类型 参数说明 参数示例
code int 返回状态码 0为成功,2为未完成登录,其它值为失败
msg string 返回信息 返回错误时的说明
type string 登录方式 qq
social_uid string 第三方登录UID AD3F5033279C8187CBCBB29235D5F827
access_token string 第三方登录token 89DC9691E274D6B596FFCB8D43368234
faceimg string 用户头像 https://thirdqq.qlogo.cn/g?......
nickname string 用户昵称 消失的彩虹海
gender string 用户性别 男
location string 用户所在地 XXXXX市(仅限支付宝/微信返回)
ip string 用户登录IP 1.12.3.40
获取用户信息接口
在用户登录后的任意时间,可以请求以下接口再次查询用户的详细信息。

请求URL: https://login.gdcxywl.cn/connect.php?act=query&appid={appid}&appkey={appkey}&type={登录方式}&social_uid={social_uid}
social_uid就是用户的第三方登录UID,用于识别用户的唯一字段。

返回格式:
{
  "code": 0,
  "msg": "succ",
  "type": "qq",
  "social_uid": "AD3F5033279C8187CBCBB29235D5F827",
  "access_token": "89DC9691E274D6B596FFCB8D43368234",
  "nickname": "大白",
  "faceimg": "https://thirdqq.qlogo.cn/g?b=oidb&k=ianyRGEnPZlMV2aQvvzg2uA&s=100&t=1599703185",
  "location": "XXXXX市",
  "gender": "男",
  "ip": "1.12.3.40"
}
返回参数说明:
参数名 参数类型 参数说明 参数示例
code int 返回状态码 0为成功,其它值为失败
msg string 返回信息 返回错误时的说明
type string 登录方式 qq
social_uid string 第三方登录UID AD3F5033279C8187CBCBB29235D5F827
access_token string 第三方登录token 89DC9691E274D6B596FFCB8D43368234
faceimg string 用户头像 https://thirdqq.qlogo.cn/g?......
nickname string 用户昵称 消失的彩虹海
gender string 用户性别 男
location string 用户所在地 XXXXX市(仅限支付宝/微信返回)
ip string 用户登录IP 1.12.3.40
PC软件内嵌二维码接口
针对PC端软件需要直接内嵌微信登录二维码的需求,可通过此接口直接获取二维码链接及轮询状态,此接口调用的是微信服务号接口。

1. 获取二维码及轮询ID
独立查询URL: https://login.gdcxywl.cn/connect.php?act=qrcode&appid={appid}&appkey={appkey}&type=wx
返回格式:
{
  "code": 0,
  "msg": "succ",
  "type": "wx",
  "qrcode": "weixin://xxxxxx",
  "logid": 12345
}
返回参数说明:
参数名 参数类型 参数说明
code int 返回状态码,0为成功
qrcode string 微信扫码地址,可生成二维码供用户扫码
logid int 用于轮询状态的记录ID

2. 轮询登录状态
建议每隔2-3秒请求一次该接口以检查用户是否扫码并授权成功。
独立查询URL: https://login.gdcxywl.cn/connect.php?act=check&appid={appid}&logid={logid}
返回格式:
{
  "code": 0,
  "msg": "登录成功",
  "auth_code": "520DD95263C1CFEA0870FBB66E******"
}
返回状态说明:
状态码(code) 说明
0 登录成功,返回 auth_code
1 等待扫码中,请继续轮询
-1 登录超时或二维码已失效,需重新获取

3. 获取用户信息
登录成功获取到auth_code后,可通过该code请求回调接口获取用户信息:
URL:https://login.gdcxywl.cn/connect.php?act=callback&appid={appid}&appkey={appkey}&type=wx&code={auth_code}
企业微信登录二维码接口
此接口针对企业微信登录需求,返回可直接用于渲染的二维码链接及轮询ID。

1. 获取二维码及轮询ID
独立查询URL: https://login.gdcxywl.cn/connect.php?act=qrcode&appid={appid}&appkey={appkey}&type=qywx
返回格式:
{
  "code": 0,
  "msg": "succ",
  "type": "qywx",
  "qrcode": "https://open.work.weixin.qq.com/wwopen/sso/qrImg?key=xxxxxx",
  "logid": 12345
}
返回参数说明:
参数名 参数类型 参数说明
code int 返回状态码,0为成功
qrcode string 企业微信扫码地址,可直接放入img标签的src属性中显示
logid int 用于轮询状态的记录ID

2. 轮询登录状态
同上方的【PC软件内嵌二维码接口】,调用 connect.php?act=check 接口轮询状态即可。
官方SDK下载
为了方便开发者快速集成,我们提供了多种语言的官方SDK供下载使用。

语言 版本 下载地址
PHP SDK v1.0.2 点击下载
C# SDK (PC端) v1.0.0 点击下载
Python SDK v1.0.1 点击下载
SDK调用示例

SDK版本:1.0

点击下载