单点登录CAS解决方案<三>:phpCAS Client

「个人学习记录,肯定有理解错误和理解不透的地方,小白总是有个成长的过程,希望大家多多指教。」

    书接上文:单点登录CAS解决方案<二>:数据库验证,服务端已经有了,现在应该开始做客户端的了。由于手上现在在做PHP的,所以,就先记录下phpCAS的使用。先给几个相关的网站

phpCAS官方文档:https://wiki.jasig.org/display/CASC/phpCAS

phpCAS源码:https://github.com/Jasig/phpCAS

一、phpCAS下载

   原本官网上是有发布版下载的,我当时cas-server使用的版本是4.0.2的时候,下载发布版1.3.3的phpCAS,过程中有BUG,我就直接在github上下载最新的源码解决了问题。

    直接用使用git克隆代码:

> git clone https://github.com/Jasig/phpCAS.git



二、创建PHP项目

    1、创建自己的PHP项目,至于用什么框架,和开发工具,这儿就不说了,各有各的需求。将同步下来的代码的“source”目录拷贝到项目中,可以改名caslib之类的,以作区分

    2、项目中怎么使用呢?这个可以参考上面的官方文档和克隆下来的“docs/examples”目录下的例子。我这儿就直接使用他的例子来做一个超级简单的CAS客户端。

三、使用例子 

    单点登录CAS解决方案<三>:phpCAS Client

    1、如上图所示,我将phpCAS的CAS.php和CAS文件夹拷贝到caslib目录下

    2、创建一个index.php文件,内容如下:

<?php
require_once '/caslib/CAS.php';

// Enable debugging
phpCAS::setDebug();

// 第一个CAS协议版本号
// 第二个cas-server的域名
// 第三个cas-server的端口号
// 第四个cas-server的项目访问路径
phpCAS::client(CAS_VERSION_2_0, '127.0.0.1', 8443, 'sso');


// 这个是设置非SSL访问,在真实项目中不建议使用,不安全.
// 如果PHP环境没有openssl拓展的话,可以添加这个来测试单点登录的效果
phpCAS::setNoCasServerValidation();

// 这个方法确保用户是否验证过,如果没有验证则跳转到验证界面。
phpCAS::forceAuthentication();

// logout if desired
if (isset($_REQUEST['logout'])) {
	phpCAS::logout();
}

?>
<html>
  <head>
    <title>phpCAS simple client</title>
  </head>
  <body>
    <h1>验证成功</h1>
    <dl style='border: 1px dotted; padding: 5px;'>
      <dt>Current script</dt><dd><?php print basename($_SERVER['SCRIPT_NAME']); ?></dd>
      <dt>session_name():</dt><dd> <?php print session_name(); ?></dd>
      <dt>session_id():</dt><dd> <?php print session_id(); ?></dd>
    </dl>
    <p>登录用户为: <b><?php echo phpCAS::getUser(); ?></b>.</p>
    <p>phpCAS 版本号<b><?php echo phpCAS::getVersion(); ?></b>.</p>
    <p><a href="?logout=">Logout</a></p>
  </body>
</html>



    参数自行修改。启动PHP运行环境后,访问上面的index.php试试看效果,是不是效果出来了?

好吧,上面的也只是入门的例子,如果需要更理想的效果,还得慢慢的研究官方的文档,博客会持续更新的,如果有好的东东,一定会记录下来,也希望和大家能多多交流。




你可能感兴趣的:(单点登录CAS解决方案<三>:phpCAS Client)