一、PHP单点登录原理
单点登录的技术实现机制:当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据ticket;用户再访问别的应用的死后,将ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过检验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
可以看出,要实现SSO,需要以下主要的功能:
所有应用系统共享一个身份认证系统;所用应用系统能够识别并提取ticket信息;应用系统能够识别已经登录过的用户,能自动判断当前用户是否已经登录过,从而完成单点登录的功能。
二、PHP单点登录过程登录流程:
1.第一次登录某个网站:
1)用户输入用户名密码,向用户验证中心发送登录请求;
2)当前登录站点,通过webservice请求,验证用户名密码的合法性。如果验证通过,则声称ticket,用于标识当前会话的用户,并将当前登录子站的站点标识符记录到用户中心;最后将获取的用户数据和ticket返回给子站。如果验证不通过,则返回相应的错误状态码;
3)根据上一步的webservice请求返回的结果,当前子站对用户进行登录处理:如状态码表示成功的话,则当前站点通过本站cookie保存ticket,并在本站记录用户的登录状态。状态码表示失败的话,则给用户相应的登