CAS统一登录认证(9): 非典型php客户端

根据《 CAS统一登录认证(7): 非典型.net客户端 》上篇文章的思路,重写了一个简单验证的cas php验证客户端  本文无需设置拦截器,只是静默的简单通过cas验证用户,访问caslogin.php 地址才会进行连接验证。

访问url如:  http://X.X.X.X/caslogin.php

caslogin.php源码如下:

<?php
$CASHOST="https://author.linbsoft.com:8443/cas/";    //cas服务器地址 
$tkt=$_GET["ticket"];
if($tkt==""){    //还没有ticket 转到cas服务器登录
  $redir = $CASHOST."login?service="."http://".$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"];
  Header("Location:$redir"); 
} 
$validateurl = $CASHOST."serviceValidate?ticket=".$tkt."&service=http://".$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $validateurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);     #取消SSL验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$response = curl_exec($ch);   #获取验证信息
curl_close($ch);
$userid="";
$html="";
if (is_null($response) || $response==''){   #获取的验证信息为null
   $html="user validate return null"; 
}else{
   if(strpos($response,"not recognized") !== false){    #验证未通过
        $html="ticket not recongized";
     }else{	 #验证通过,获取用户
        $userid=$response;
	session_start();
	$_SESSION["username"]=$userid;
	$html="sucess login user:".$userid;
      }
}
echo $html;
?>

以上是cas验证通过后返回信息,可以自己处理比如执行软件登录逻辑代码,登录后跳转页面等...

猜你喜欢

转载自blog.csdn.net/oLinBSoft/article/details/82221096
今日推荐