单点登录应该归为架构的部分了,但是一般网站在开始的时候最好有单点登录的思想,防止后期再做大量的修改。而且单点登录对于开发人员来说并没有增加太多额外的工作量,所以提前讲一下对大家都是好的。
先说一下单点登录的机制(摘自百度百科,给我广告费):
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
另外单点登录的好处是不需要每开发一个系统都需要做一套用户管理的功能了。你只需要开发一套用户管理系统,提供sso的sdk,甚至可以再扩展一下提供oauth2的api,这样就可以实现内部的单点登录及外部的用户认证。
具体实现机制我就不再巴拉巴拉的拷贝粘贴了,请自行google sso单点登录,oauth2。
我再说一下我们血的教训,最早做网站时根本没有使用单点登录,因为就一个系统,而且也没有想过这个问题。后来系统就渐渐多了起来,每个里面都有一套用户注册、登录、管理。但是这几个系统最终是服务同一批用户的,问题就来了,用户不想每个系统都注册、登录一次啊,而且每个系统的用户都没有关系。领导对此大发雷霆,只得每个系统进行改造,数据合并最头大,有些用户注册的用户名还不一样,只得多个账号都保留。当然改造完之后,神清气爽,为后来和新浪教育及其他教育公司对接提供了有力的支持。
时间: 2024-09-30 19:31:49