zoukankan      html  css  js  c++  java
  • 单点登录

    什么是单点登录系统 (Single Sign On)? 

    在多个系统中,用户只要登录一次就可以访问所有的子系统。

    1. 单点登录系统(SSO): 

    创建单点登录系统,独立的工程。

    发布登录和注册的接口。

    公司中的一个系统中,只需要调用一个登录页面就可以实现登录和注册的功能。

    传统的登录流程:

    在传统的登录中出现的问题。在集群中,需要把同一套代码部署到多个服务器中。每个工程都有独立的session.

    如果把用户信息写入到session中不共享的话,就会出现用户反复登录的情况。

    解决方案:第一种方案可以配置tomcat的session共享,配置tomcat集群。集群配置好了。会不停的向其他的tomcat广播自己的session信息,其他的tomcat做session同步。可以保证所有的session中的内容一致。

    缺点:<a>tomcat是全局的session复制。集群内每个tomcat的session完全同步。在大规模应用的时候,用户过多。集群中tomcat数量过多。session的全局复制会导致集群的性能下降,因此tomcat数量不能多。5个以下为好。 不能解决session共享的问题。列如支付宝和淘宝单点登录的问题。

    第二种方案:实现单点登录,提供服务接口。把session放入到redis中。redis可以设置key的生存时间。访问效率高。单点登录由一套单点页面维护。

    用户请求登录页面,SSO系统接收用户信息。从数据库中获取信息,判断是否正确,用户认证,生成token,将信息保存到Redis中设置有效期,返回登录成功,把token写入到cookie中,如果有回调url,跳转到回调的url中。

    接收cookie中的token,并根据token查redis.如果token存在,可以顺便调整生存时间。显示请求页面。否则返回登录页面。

    创建单点登录系统(独立的工程,需要操作Redis,连接数据库)

    系统架构:

    需要使用的技术:1)Mybatis; 2)Spring ; 3)Springmvc; 4)Redis;

  • 相关阅读:
    pycharm破解补丁的使用
    C# 解析JSON格式数据
    LINQ to DataSet的DataTable操作
    日期格式化
    vue scoped原理
    vue父子组件生命周期执行顺序
    js判断同一天和同一周
    flex总结
    react-router v4 参数传递
    link标签rel="alternate"属性的作用及用法
  • 原文地址:https://www.cnblogs.com/jacksonxiao/p/8168685.html
Copyright © 2011-2022 走看看