最近在搞单点登录,此前从来都没有接触过,那么就直接说了,不废话了。
单点登录的概念:一个地方登录了,其它地方都不需要登录。
首先,我用php实现单点登录不仅仅只是实现,还有理解,还有配置tomcat,CAS服务器等。
php用到的是phpcas库,他可以用来与CAS服务器做对接。
首先整体说下phpcas实现的过程,然后再来细讲源码。
1、phpcas首先判断session,因为登录成功的话phpcas是将CAS服务器返回的内容放在session中的,
如果session不存在的话,会重写向302到CAS服务器登录页面。
2、登录成功时,CAS服务器重写向到访问的地址,并且带上了TGC和ST这两个东西,往下细讲。
3、浏览器带着ST再去客户端访问,客户端拿着这个ST作为TICKET到CAS服务器端进行验证
4、验证成功后则允许访问,否则直接重定向到CAS服务器登录
以上是大概的四个方面,现在来根据源码细讲一下这个原理过程。
phpCAS::client(CAS_VERSION_2_0,'localhost',8443,'cas',true);
上面的代码是用来创建一个PHPCAS客户端实例的,也是PHP用来与CAS通信的基本信息,应该很好懂,
localhost 是CAS服务器的域名,注意IP地址最好不要填,后面的8443是端口,cas是目录,true是开启ssl验证
第一个参数源码中给出以下几个选择:
CAS