记一次 SSO 单点登录实现

1,698 阅读1分钟

今天被上级提了需求,上级需要一个地方登陆,多个站都能访问的需求。

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

SSO 简单点来说嘛 就是一个地方统一登录后管理么多个站公用登录状态。

我们这里说的“站”,是网站的意思。别以为手机什么都能访问 SSO 只能解决网站的问题,并不能处理多端登录问题

SSO 实现也是 和你 用 jwt 的方式拿用户信息是差不多的。只不过Oauth2 还需要 登录,而SSO不需要登陆了。可以先这样简单的理解吧

大致的 SSO 流程是这样的。

image.png

举个简单的例子 www.test1.com 登录 在test1站点的程序中,使用爬虫原理,发送用户信息去请求SSO程序校验用户信息。 然后SSO系统校验成功后放回一个Token给用户,其实这里和我们一般小厂使用的Token 原理是一样的。只是SSO再这里做了一个简单的重定向 然后在网站1种把Token保存到Cookie中,然后网站一在302重定向到 网站2 如下图 www.test2.com?user_token=xxxxx 的页面中把token保存后,再重定向放回到网站1,造成假象,让用户以为只是做了登录网站一而已。