Skip to content
Go back

CAS登出逻辑验证

CAS支持灵活登出方式,可以单独登出单个应用,也支持统一登出。

现A,B应用分别登陆CAS,获取ST。

登出A

https://cas.com:8443/cas/logout?service=https://a.com:8444/authorize

CAS会向A应用/authorize发起登出消息(POST请求)

格式如下:

<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="LR-1-VM1PfgJD6VEDtCc4NnIWaVLqFs0PktY6Ej9" Version="2.0" IssueInstant="2017-07-20T10:45:39Z">
	<saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
		@NOT_USED@
	</saml:NameID>
	<samlp:SessionIndex>ST-2-HtrBiWrgRD9DFgL25GI9-passport.edu</samlp:SessionIndex>
</samlp:LogoutRequest>

A应用处理登出请求。

不带service A,B应用都会收到登出消息。

使用phpCAS处理登出栗子👇

phpCAS认证通过后,会设置PHPSESSID:ST-2-HtrBiWrgRD9DFgL25GI9-passport.edu

将对应session销毁即可

session_id('ST-2-HtrBiWrgRD9DFgL25GI9-passport.edu');
session_start();
session_unset();
session_destroy();

参考文章:

CAS 4.1.x 单点登出(退出登录)的原理解析


Share this post on:

Previous Post
PHP-FPM Docker 使用示例
Next Post
Mac远程桌面连接软件:Microsoft Remote Desktop