简单实现SSO
方案一:原理:基于SSO Server 端的登录情况,跳转至SOO-client的各个端。 每次返回一个 ticker 随机票据值识别。
- 配置服务端
- 执行 :git clone https://github.com/234146326/sso-server.git && cd sso-server && composer install ;
- 配置apache or nginx 目录 app_path / public
- 完成服务端 配置请查看README.MD
- 配置客户端
- 如例1:基于Thinkphp引入sso client —— 执行命令: composer require xuying/sso-client
- 根据需求在指定位置添加:
//TODO 实例执行 $client = new \SsoSdk\SsoClient();//实例客户端 $client->run();//运行
方案二:原理:
- 第一次请求服务端方法 Aattach() 设置缓存了并生成了SessionID作为KEY =>某终端作为Session_id()作为VALUE;
- 第二请求服务端 从会话密钥生成会话ID; 添加到CURL Header Authorization(Authorizations):内;服务端解码Id后,得到SessionID ,然后验证缓存是否存在;决定会话成立与否。
- 服务端 验证用户与密码 保存SSO_USER 到 Session 。用于下次获取用户信息验证。即基于代理会话缓存 + Session 用户数据 = 数据认证交互;
- 完成。
composer require xuying/jasny-sso-server
- composer init
- 填写一个包名称后,不停回车即可;
- composer require xuying/jasny-sso-server
- 复制 vendor/xuying/jasny-sso-server/examples .到当前目录。复制 vendor/xuying/jasny-sso-server/index.php 到当前路径;
- 配置apache 或者 nginx 当前目录做server 。配置examples/ajax-broker 为B站。配置C站 examples/broker
- 完成;