# sso **Repository Path**: a67793581_admin/sso ## Basic Information - **Project Name**: sso - **Description**: php sso 用php设计的认证中心 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-29 - **Last Updated**: 2025-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sso ## php sso 用php设计的认证中心 ## 认证流程 ### 用户打开任意网站→点击登录→将登录请求发送到认证中心(带上该页面的完整url地址) ### ↓认证中心接到登录请求: ### 展示登录页面(自己设计)→用户输入账号密码→点击登录→验证账号密码(自己设计) ### ↓验证通过后调用核心组件: ### 加密需要分发的用户信息并保存到cookie,并发起同步登录请求给全部网站 ### ↓实例代码: ``` $info = $core->set_cookie(array('sign'=>$_POST['username']));//加密需要分发的用户信息并保存到cookie $core->login($info);//并发起同步登录请求给全部网站 ``` ### ↓客户端接收到登录请求: ### 自行校验请求来源→调用核心登录方法获取用户信息→自行保存用户信息完成登录->返回登录完成的信息 ### ↓实例代码: ``` $user = $core->login($_GET['code'],$_GET['callback']);//调用核心登录方法获取用户信息 foreach($user as $key=>$val){//自行保存用户信息完成登录 setcookie($key,$val,0,'/'); } exit($_GET['callback'] . '(0)');//返回登录完成的信息 ``` ### 至此完成登录 核心类请务必自己看一下有很多可以自定义 ## 服务端核心类的必要配置信息: ``` //$api_url 为各个网站接口的地址 private $api_url = array( 'http://test2.aiku.fun/sso/callback.php', ); //以下3个参数 2个核心类要一致 //加密用RSA公钥 秘钥格式PKCS#1 private $public_key = ''; //加密用RSA私钥 秘钥格式PKCS#1 private $private_key = ''; //code 加密用秘钥 private $md5_key = ''; ``` ## 客户端核心类的必要配置信息 ```$xslt //设置服务端code获取用户信息的完整url包含变量名不包含变量值 private $sso_code_url = 'http://test1.aiku.fun/index.php?code='; //以下3个参数 2个核心类要一致 //加密用RSA公钥 秘钥格式PKCS#1 private $public_key = ''; //加密用RSA私钥 秘钥格式PKCS#1 private $private_key = ''; //code 加密用秘钥 private $md5_key = ''; ```