付小鱼统一身份认证平台:免费快捷登录接入

46次阅读
没有评论

共计 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 使用流程

  1. 用户访问第三方网站:用户访问第三方网站,点击 ” 使用付小鱼统一身份认证登录 ” 按钮
  2. 跳转到统一身份认证平台:用户被重定向到  login.fuxiaoyu.cn  进行登录
  3. 查看账户转入按钮:在登录页面底部,用户可以看到 ” 没有在统一身份认证平台登陆的账户转入 ” 按钮
  4. 验证统一身份认证平台账号:点击按钮后,用户需要先输入并验证统一身份认证平台的账号密码
  5. 自动识别域名:验证成功后,系统会自动识别被请求登录的域名
  6. 输入第三方网站账户信息:用户输入在第三方网站的账户名和密码
  7. 完成账户关联:系统将第三方网站的账户信息关联到统一身份认证平台

5.3 下次登录体验

当用户再次访问该第三方网站并跳转到统一身份认证平台登录时:

  1. 输入统一身份认证平台的账户后,系统会显示登录方式选择
  2. 选项包括:
    • 使用付小鱼统一身份认证平台账户密码登录
    • 使用所有关联到该域名的账户名(点击后自动填充密码)
  3. 用户可以选择任一方式登录,实现一键登录体验

5.4 账户管理

用户可以在统一身份认证平台的 ” 账户管理 ” 页面查看、编辑或删除已关联的第三方网站账户信息。

5.5 技术实现

账户转入功能的核心技术实现包括:

  1. 域名自动识别 :通过解析  redirect_uri 参数自动识别被请求登录的域名
  2. 账户关联存储:将第三方网站账户信息安全存储在浏览器的  localStorage  中
  3. 登录选择框:根据域名动态生成登录方式选择框
  4. 自动填充密码:点击关联账户后自动填充密码到登录表单

5.6 安全注意事项

  1. 账户信息仅存储在用户本地浏览器中,不会上传到服务器
  2. 账户关联过程中,统一身份认证平台的账号密码会进行严格验证
  3. 用户可以随时在账户管理页面删除已关联的账户信息

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 本地测试

  1. 将上述 Demo 代码保存到本地服务器的 Web 目录中
  2. 修改 Demo 代码中的 redirect_uriclient_domain为您的测试域名
  3. 访问 Demo 首页,点击 ” 付小鱼统一身份认证登录 ” 按钮
  4. 在认证平台登录页面输入账号密码登录
  5. 登录成功后,检查是否自动跳转回 Demo 首页,并显示用户信息

8.2 在线测试

  1. 将 Demo 代码部署到您的线上服务器
  2. 访问 Demo 首页,点击 ” 付小鱼统一身份认证登录 ” 按钮
  3. 在认证平台登录页面输入账号密码登录
  4. 登录成功后,检查是否自动跳转回 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. 安全注意事项

  1. 确保 redirect_uriclient_domain参数正确设置,避免安全风险
  2. 定期检查认证令牌的有效性,及时清理过期令牌
  3. 建议使用 HTTPS 协议,确保数据传输安全
  4. 不要在前端页面直接暴露认证令牌,避免被恶意获取

11. 联系方式

如果您在接入过程中遇到问题,请联系付小鱼统一身份认证平台的技术支持:

  • 邮箱:py10102022@163.com

12. 更新日志

版本 更新日期 更新内容
1.0.0 2026-01-11 初始版本,支持第三方网站统一身份认证接入
正文完
 0
付 朗睿
版权声明:本站原创文章,由 付 朗睿 于2026-01-11发表,共计7159字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文明评论哦~
评论(没有评论)

付小付的博客

付小付的博客
付小付的博客
Fu XiaoFuBlog
用户数
7
文章数
16
评论数
5
阅读量
2488