讲完cookie和session(没看过前一篇博客的建议先看前一篇),现在简单讨论下登录系统。
简单的单独项目登录系统可以做的很简单,只是用cookie和session就能实现;复杂的登录系统如SSO等可以做的很复杂,需要考虑使用各种认证防数据捕获等情况。
这里简单介绍下多系统非SSO登录认证系统。
在公司内部有这样的需求:公司内部有许多平台(可以理解为项目),但这些平台没有实现登录的功能,现在需要提供一个统一的登录系统共这些平台接入,并登录。
和传统的单系统不同,该登录认证系统是单独的一套系统,即登录系统独立于项目。
从大体上来说,这样的登录认证系统需要提供以下三个最基本的功能:
- 登录
- 认证
- 登出
我们把单独的登录认证系统就称为登录系统,接入的项目称为平台。
具体流程如下:
- 浏览器输入平台的主页面,由于平台未发现记录用户的信息,因此携带该平台的url导向到登录系统的登录页面
- 用户登录,登录成功,登录系统根据第一步传来的url再导回到平台主页
- 平台检测到了携带用户的信息,但不确定该信息是否正确,因此调用登录系统的认证功能,核实该信息
- 核实通过,登录系统返回结果给平台,平台保存该信息,下一次再访问该平台时,由于平台已经保存了用户信息,因此不用调用登录系统的认证功能,直接在其内部比对
- 登出时,调用登录系统的登出功能,成功后清除平台保存的用户信息。
在只是用cookie和session的基础上,设计的具体序列图如下:
笔者有一份简单的代码,但写的很烂,就不贴出来了。。。