共计 7159 个字符,预计需要花费 18 分钟才能阅读完成。
欢迎各位开发者接入“付小鱼统一身份认证系统”本系统可以让多个站点的
1. 平台介绍
付小鱼统一身份认证平台(以下简称 ” 认证平台 ”)提供一站式用户认证服务,支持短信、邮箱验证码登录,以及第三方网站的统一身份认证。第三方网站接入后,用户可以使用认证平台的账号登录,无需重复注册。
2. 接入准备
2.1 必要信息
| 信息项 | 说明 | 示例 |
|---|---|---|
| 认证平台地址 | 统一身份认证平台的基础 URL | http://login.fuxiaoyu.cn |
| 登录页面 URL | 认证平台的登录页面 URL | http://login.fuxiaoyu.cn/views/login.php |
| redirect_uri | 登录成功后跳转回第三方网站的 URL | http://yourwebsite.com |
| client_domain | 第三方网站的域名 | yourwebsite.com |
2.2 技术要求
- 支持 PHP 7.0+ 或其他服务端语言
- 支持 Cookie 和 Session
- 支持 HTTP/HTTPS 协议
3. 接入流程

4. 详细接入步骤
4.1 步骤 1:添加登录入口
在第三方网站的登录页面或首页添加 ” 付小鱼统一身份认证登录 ” 按钮,链接指向认证平台的登录页面,并携带必要参数。
建议添加在您的原始登录输入框的下面
<!-- 示例:在第三方网站首页添加登录按钮 -->
<a href="http://login.fuxiaoyu.cn/views/login.php?redirect_uri=http://yourwebsite.com&client_domain=yourwebsite.com" class="btn"
>
付小鱼统一身份认证登录
</a>
4.2 步骤 2:处理认证令牌
在第三方网站的首页或入口文件中添加认证令牌处理逻辑,用于接收和处理来自认证平台的认证信息。
<?php
// 启动会话
if (session_status() == PHP_SESSION_NONE) {session_start();
}
// 处理来自统一身份认证平台的认证令牌
if (isset($_GET['auth_token']) && isset($_GET['username']) && isset($_GET['role'])) {$auth_token = $_GET['auth_token'];
$username = $_GET['username'];
$role = $_GET['role'];
// 将认证信息保存到会话中
$_SESSION['auth_token'] = $auth_token;
$_SESSION['username'] = $username;
$_SESSION['role'] = $role;
$_SESSION['is_authenticated'] = true;
// 重定向到首页,移除 URL 中的认证参数
header('Location: index.php');
exit;
}
?>
4.3 步骤 3:验证用户登录状态
在第三方网站的需要登录的页面中,添加用户登录状态验证逻辑。
<?php
// 启动会话
if (session_status() == PHP_SESSION_NONE) {session_start();
}
// 检查用户是否已登录
if (!isset($_SESSION['is_authenticated']) || !$_SESSION['is_authenticated']) {
// 未登录,跳转到登录页面
header('Location: login.php');
exit;
}
// 已登录,获取用户信息
$username = $_SESSION['username'];
$role = $_SESSION['role'];
$auth_token = $_SESSION['auth_token'];
?>
4.4 步骤 4:显示用户信息
在第三方网站的页面中,显示已登录用户的信息。
<?php
// 显示用户信息
if (isset($_SESSION['is_authenticated']) && $_SESSION['is_authenticated']) {echo " 欢迎您," . $_SESSION['username'] . "!";
echo "<a href='logout.php'> 退出登录 </a>";
}
?>
4.5 步骤 5:实现退出登录
在第三方网站中添加退出登录功能,清除会话信息。
<?php
// 退出登录处理
if (session_status() == PHP_SESSION_NONE) {session_start();
}
// 清除会话信息
session_unset();
session_destroy();
// 重定向到首页
header('Location: index.php');
exit;
?>
5. 账户转入功能说明
5.1 功能介绍
账户转入功能是付小鱼统一身份认证平台的一项特色功能,用于将第三方网站的账户关联到统一身份认证平台。当用户从其他网站跳转到 login.fuxiaoyu.cn 进行登录时,登录页面底部会显示 ” 没有在统一身份认证平台登陆的账户转入 ” 按钮。
5.2 使用流程
- 用户访问第三方网站:用户访问第三方网站,点击 ” 使用付小鱼统一身份认证登录 ” 按钮
- 跳转到统一身份认证平台:用户被重定向到
login.fuxiaoyu.cn进行登录 - 查看账户转入按钮:在登录页面底部,用户可以看到 ” 没有在统一身份认证平台登陆的账户转入 ” 按钮
- 验证统一身份认证平台账号:点击按钮后,用户需要先输入并验证统一身份认证平台的账号密码
- 自动识别域名:验证成功后,系统会自动识别被请求登录的域名
- 输入第三方网站账户信息:用户输入在第三方网站的账户名和密码
- 完成账户关联:系统将第三方网站的账户信息关联到统一身份认证平台
5.3 下次登录体验
当用户再次访问该第三方网站并跳转到统一身份认证平台登录时:
- 输入统一身份认证平台的账户后,系统会显示登录方式选择
- 选项包括:
- 使用付小鱼统一身份认证平台账户密码登录
- 使用所有关联到该域名的账户名(点击后自动填充密码)
- 用户可以选择任一方式登录,实现一键登录体验
5.4 账户管理
用户可以在统一身份认证平台的 ” 账户管理 ” 页面查看、编辑或删除已关联的第三方网站账户信息。
5.5 技术实现
账户转入功能的核心技术实现包括:
- 域名自动识别 :通过解析
redirect_uri参数自动识别被请求登录的域名 - 账户关联存储:将第三方网站账户信息安全存储在浏览器的
localStorage中 - 登录选择框:根据域名动态生成登录方式选择框
- 自动填充密码:点击关联账户后自动填充密码到登录表单
5.6 安全注意事项
- 账户信息仅存储在用户本地浏览器中,不会上传到服务器
- 账户关联过程中,统一身份认证平台的账号密码会进行严格验证
- 用户可以随时在账户管理页面删除已关联的账户信息
6. 开发建议
在此处留下您的珍贵建议吧!
7. 完整 Demo 示例
7.1 首页示例(index.php)
<?pHP
// 启动会话
if (session_status() == PHP_SESSION_NONE) {session_start();
}
// 处理来自统一身份认证平台的认证令牌
if (isset($_GET['auth_token']) && isset($_GET['username']) && isset($_GET['role'])) {$auth_token = $_GET['auth_token'];
$username = $_GET['username'];
$role = $_GET['role'];
// 将认证信息保存到会话中
$_SESSION['auth_token'] = $auth_token;
$_SESSION['username'] = $username;
$_SESSION['role'] = $role;
$_SESSION['is_authenticated'] = true;
// 重定向到首页,移除 URL 中的认证参数
header('Location: index.php');
exit;
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> 第三方网站 - 首页 </title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
background-color: #f5f7fa;
}
.container {
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
padding: 40px;
text-align: center;
}
h1 {
color: #333;
margin-bottom: 30px;
}
.btn {
display: inline-block;
padding: 12px 24px;
margin: 10px;
border: none;
border-radius: 4px;
font-size: 16px;
font-weight: bold;
text-decoration: none;
cursor: pointer;
transition: background-color 0.3s;
}
.btn-primary {
background-color: #4070f4;
color: #fff;
}
.btn-primary:hover {background-color: #335fe0;}
.btn-secondary {
background-color: #6c757d;
color: #fff;
}
.btn-secondary:hover {background-color: #5a6268;}
.user-info {
margin-top: 20px;
padding: 20px;
background-color: #e3f2fd;
border-radius: 4px;
text-align: left;
}
</style>
</head>
<body>
<div class="container">
<h1> 欢迎访问第三方网站 </h1>
<?php if (isset($_SESSION['is_authenticated']) && $_SESSION['is_authenticated']): ?>
<!-- 已登录状态 -->
<div class="user-info">
<h3> 用户信息 </h3>
<p><strong> 用户名:</strong><?php echo $_SESSION['username']; ?></p>
<p><strong> 角色:</strong><?php echo $_SESSION['role']; ?></p>
<p><strong> 认证令牌:</strong><?php echo $_SESSION['auth_token']; ?></p>
</div>
<a href="logout.php" class="btn btn-secondary"> 退出登录 </a>
<?php else: ?>
<!-- 未登录状态 -->
<p> 请选择登录方式:</p>
<a href="login.php" class="btn btn-secondary"> 本地登录 </a>
<a href="http://login.fuxiaoyu.cn/views/login.php?redirect_uri=http://yourwebsite.com&client_domain=yourwebsite.com" class="btn btn-primary"> 付小鱼统一身份认证登录 </a>
<?php endif; ?>
</div>
</body>
</html>
7.2 退出登录示例(logout.php)
<?php
// 退出登录处理
if (session_status() == PHP_SESSION_NONE) {session_start();
}
// 清除会话信息
session_unset();
session_destroy();
// 重定向到首页
header('Location: index.php');
exit;
?>
8. 测试方法
8.1 本地测试
- 将上述 Demo 代码保存到本地服务器的 Web 目录中
- 修改 Demo 代码中的
redirect_uri和client_domain为您的测试域名 - 访问 Demo 首页,点击 ” 付小鱼统一身份认证登录 ” 按钮
- 在认证平台登录页面输入账号密码登录
- 登录成功后,检查是否自动跳转回 Demo 首页,并显示用户信息
8.2 在线测试
- 将 Demo 代码部署到您的线上服务器
- 访问 Demo 首页,点击 ” 付小鱼统一身份认证登录 ” 按钮
- 在认证平台登录页面输入账号密码登录
- 登录成功后,检查是否自动跳转回 Demo 首页,并显示用户信息
8.4 在此测试
付小鱼统一身份认证 – 在线生成登录链接
测试结果
9. 常见问题及解决方案
9.1 登录成功后未跳转回第三方网站
问题:用户在认证平台登录成功后,未跳转到第三方网站。
解决方案:
- 检查
redirect_uri参数是否正确设置 - 确保
redirect_uri是完整的 URL,包括协议(http:// 或 https://) - 检查认证平台的登录 API 是否正确返回重定向 URL
9.2 认证令牌无效
问题:第三方网站无法识别或验证认证令牌。
解决方案:
- 检查认证平台的登录 API 是否正确生成认证令牌
- 确保第三方网站的认证令牌处理逻辑正确
- 检查会话是否正常启动和保存
9.3 跨域问题
问题:第三方网站无法接收来自认证平台的请求。
解决方案:
- 确保认证平台已设置正确的跨域头(Access-Control-Allow-Origin)
- 检查浏览器控制台是否有跨域错误
- 确保重定向 URL 使用相同的协议(http:// 或 https://)
10. 安全注意事项
- 确保
redirect_uri和client_domain参数正确设置,避免安全风险 - 定期检查认证令牌的有效性,及时清理过期令牌
- 建议使用 HTTPS 协议,确保数据传输安全
- 不要在前端页面直接暴露认证令牌,避免被恶意获取
11. 联系方式
如果您在接入过程中遇到问题,请联系付小鱼统一身份认证平台的技术支持:
- 邮箱:py10102022@163.com
12. 更新日志
| 版本 | 更新日期 | 更新内容 |
|---|---|---|
| 1.0.0 | 2026-01-11 | 初始版本,支持第三方网站统一身份认证接入 |