SSO单点登录

一、场景

公司旗下网站www.a.com,www.b.com,www.c.com,其中www.a.com是主网站,要求在www.a.com登录以后其他子网站无需重复登录

 

二、思路

1.检测到需要登录,跳转至统一验证登录页面www.a.com/login

2.验证登录成功,保存登录信息至数据库并生成token

3.通过P3P跨域把token保存至各个子网站的cookie

4.再次访问子网站检测到cookie,验证token,自定义设置登录信息

5.注销:P3P跨域清除各个子网站的cookie、session

 

三、部分代码(PHP)

1.保存token

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');



setcookie('sso',$_GET['token'],null,'/');

 

2.清除cookie、session

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');



setcookie('sso',null,time()-1,'/');    

setcookie(ini_get('session.name'),null,time()-1,'/');

你可能感兴趣的:(单点登录)