零度聚合 是一款社会化账号聚合登录系统,基于 OAuth2.0 协议,为网站提供统一、便捷的第三方登录服务。 开发者只需简单的几步操作,即可在自己的网站上集成微信、QQ、支付宝、微博等多种第三方登录方式。
只需 4 步即可完成第三方登录接入:
访问用户中心注册账号,进入应用管理创建您的应用,获取 AppID 和 AppSecret。
在应用设置中填写您网站的回调地址(如 https://yourdomain.com/callback.php)。
在您的网站登录页面,添加第三方登录按钮,引导用户跳转至登录授权页面。
用户授权后,系统会回调至您设置的地址,您可以通过API获取用户的基本信息。
以下是一个简单的 PHP 接入示例:
<?php
// 配置信息
$appid = '您的AppID';
$secret = '您的AppSecret';
$callback = 'https://yourdomain.com/callback.php';
// 发起登录 - 以QQ为例
$loginUrl = "https://您的域名/connect.php?type=qq"
. "&appid={$appid}"
. "&redirect_uri=" . urlencode($callback);
// 输出登录链接
echo '<a href="' . $loginUrl . '">QQ登录</a>';
?>
<?php
// callback.php - 处理登录回调
if (isset($_GET['type']) && isset($_GET['code'])) {
$type = $_GET['type'];
$code = $_GET['code'];
// 通过API获取access_token
$tokenUrl = "https://您的域名/ajax.php"
. "?act=gettoken&type={$type}"
. "&appid={$appid}"
. "&secret={$secret}"
. "&code={$code}";
$response = file_get_contents($tokenUrl);
$data = json_decode($response, true);
if (isset($data['access_token'])) {
$token = $data['access_token'];
// 获取用户信息
$userUrl = "https://您的域名/ajax.php"
. "?act=getuserinfo&type={$type}"
. "&access_token={$token}";
$userInfo = json_decode(file_get_contents($userUrl), true);
// 处理用户登录逻辑...
print_r($userInfo);
}
}
?>
回调地址(Redirect URI)是用户完成第三方平台授权后,系统将用户重定向回您网站的地址。该地址会携带授权码 code 参数。
http:// 或 https:// 开头| 参数 | 类型 | 说明 |
|---|---|---|
| type | String | 登录类型,如 qq、weixin、alipay 等 |
| code | String | 授权码,用于换取 access_token,有效期通常为5分钟 |
| state | String | 自定义状态参数(可选),原样返回,用于防止CSRF攻击 |
引导用户跳转到第三方平台进行授权登录。
/connect.php
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | String | 是 | 登录类型:qq、weixin、alipay、weibo 等 |
| appid | String | 是 | 应用的 AppID |
| redirect_uri | String | 是 | 授权回调地址,需 URL 编码 |
| state | String | 否 | 自定义状态参数,回调时原样返回 |
在回调地址中,使用授权码换取 Access Token。
/ajax.php?act=gettoken
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| act | String | 是 | 固定值:gettoken |
| type | String | 是 | 登录类型 |
| appid | String | 是 | 应用的 AppID |
| secret | String | 是 | 应用的 AppSecret |
| code | String | 是 | 回调时获取的授权码 |
| redirect_uri | String | 是 | 授权回调地址,需与发起时一致 |
{
"code": 0,
"msg": "success",
"access_token": "xxxxxxxxxxxxxxxx",
"refresh_token": "xxxxxxxxxxxxxxxx",
"expires_in": 7200
}
使用 Access Token 获取已授权用户的个人信息。
/ajax.php?act=getuserinfo
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| act | String | 是 | 固定值:getuserinfo |
| type | String | 是 | 登录类型 |
| access_token | String | 是 | 通过 gettoken 接口获取的 access_token |
{
"code": 0,
"msg": "success",
"data": {
"openid": "用户唯一标识",
"type": "qq",
"name": "用户昵称",
"avatar": "https://..."
}
}
| 错误码 | 说明 | 解决方案 |
|---|---|---|
| 0 | 请求成功 | - |
| -1 | 参数错误 | 检查请求参数是否完整、格式是否正确 |
| -2 | AppID 或 AppSecret 无效 | 检查应用凭证是否正确 |
| -3 | 授权码无效或已过期 | 重新发起登录请求获取新的 code |
| -4 | Access Token 无效或已过期 | 使用 refresh_token 刷新或重新授权 |
| -5 | 回调地址不匹配 | 确保回调地址与应用设置中一致 |
| -6 | 该登录类型未启用 | 在应用设置中开启对应平台的登录 |
| -7 | 请求频率过高 | 降低请求频率,稍后重试 |
注册并登录用户中心,在「应用管理」中创建应用即可获取。
可以,但不建议。建议填写具体处理回调逻辑的文件路径,如 https://yourdomain.com/callback.php。
目前支持微信、QQ、支付宝、微博、百度、GitHub、Google、Facebook、Gitee 等 17+ 种主流社交平台。
Access Token 有效期为 7200 秒(2小时)。过期后可使用 refresh_token 刷新,或引导用户重新授权登录。
支持。所有接口均为标准的 HTTP API,任何能发送 HTTP 请求的语言和框架都可以使用。
当登录失败时,系统会返回相应的错误码和错误信息。您可以根据错误码进行相应的处理,如引导用户重新登录或检查参数是否正确。
我们采用 OAuth2.0 协议进行授权,所有数据传输均使用 HTTPS 加密。同时,我们不会存储用户的敏感信息,只存储必要的用户标识和基本信息。
您可以在用户中心的应用管理中获取测试账号,或使用真实的第三方账号进行测试。同时,我们提供了接口测试工具,方便您测试 API 的调用情况。
支持。您可以根据自己的需求自定义登录页面的样式和流程,只需要按照 API 文档的要求发起登录请求即可。