查看传统的的登录方式
大家可以看到最后的用户信息 是存储到 session 中的。
现在有一个致命的问题 服务器中的session不是共享的,如果我们的项目的量级很大需要分布式服务器,那么就需要用户高频率的操作登录功能。这对于用户体验来说是残忍的,也是致命的。
传统登录问题:
- session默认是存储在当前服务器的内存中,如果是集群,那么只有登录那台机器的内存中才有这个session
- 比如说我在A机器登录,B机器是没有这个session存在的,所以需要重新验证
如何解决:
- 不管在那一台web服务器登录,都会把token值存放到我们的一个集中管理的redis服务器中
- 但客户端携带token验证的时候,会先从redis中获取,就实现单点登录
基于redis实现的单点登录这套方案比SSO CAS来说比较简单,容易上手,主要是依赖每个应用的拦截器和redis实现单点登录
单点登录:
有一个独立的认证中心,只有认证中心才能接受用户的用户名和密码等信息进行认证,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,当用户提供的用户名和密