简单实现SSO

方案一:原理:基于SSO Server 端的登录情况,跳转至SOO-client的各个端。 每次返回一个 ticker 随机票据值识别。

  1. 配置服务端
  2. 执行 :git clone https://github.com/234146326/sso-server.git && cd sso-server && composer install  ;
  3. 配置apache or nginx  目录  app_path / public
  4. 完成服务端 配置请查看README.MD
  5. 配置客户端
  6. 如例1:基于Thinkphp引入sso client  ——  执行命令: composer require xuying/sso-client
  7. 根据需求在指定位置添加:

            //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
  1. composer init 
  2. 填写一个包名称后,不停回车即可;
  3. composer require xuying/jasny-sso-server
  4. 复制 vendor/xuying/jasny-sso-server/examples .到当前目录。复制 vendor/xuying/jasny-sso-server/index.php 到当前路径;
  5. 配置apache 或者 nginx 当前目录做server 。配置examples/ajax-broker 为B站。配置C站 examples/broker
  6. 完成;

 

posted @ 2018-12-14 11:06  徐锅  阅读(1146)  评论(0编辑  收藏  举报