单点登录的使用流程

单点登录的概念:
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

为什么会存在单点登录的问题
session默认是存储在当前服务器的内存中,如果是集群,那么只有登录那台机器的内存中才有这个session
比如说我在A机器登录,B机器是没有这个session存在的,所以需要重新验证

如何解决单点登录问题
不管在那一台web服务器登录,都会把token值存放到我们的一个集中管理的redis服务器中
当客户端携带token验证的时候,会先从redis中获取,再去redis中查询是否有该用户信息存在,如此实现单点登陆

为什么要使用redis 来解决session 共享问题呢?
redis 是一个纯键值类型的NSQL数据库,所有的操作都是具有原子性的.
redis 可以设置key的生存时间,访问速度快速效率高.
缺点就是: 会对代码有一定的侵入性.需要自行编码实现!!!

单点登录的缺点及解决办法:
引进SSO单点登录的逻辑,它完美的解决了在多服务下的session共享问题,但是又会带来哪些问题呢?
在高并发下,很难保证生成的token的唯一性,并且有可能存在cookie存储的token信息,在redis 中查询不到,
于是在这种情况下就需要使用分布式锁,分布式锁有很多实现方式, 利用redis 中的setnx 和getset命令来实现redis 分布式锁!

SETNX命令简介
命令格式

SETNX key value
将 key 的值设为 value ,当且仅当 key 不存在。
若给定的 key 已经存在,则 SETNX 不做任何动作。
SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
返回值
设置成功,返回 1 。
设置失败,返回 0 。

使用单点登录的好处

  • 方便用户
    用户使用应用系统时,能够一次登录,多次使用。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。单点登录平台能够改善用户使用应用系统的体验。
  • 方便管理员
    系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞。
  • 简化应用系统开发
    开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。

现实举例
比如你写的一个tornado项目,分别部署到A,B两台机器上
如果直接使用session,那么如果在A机器登录,token只会在A服务器的内存
因为请求会封不到A,b连个机器,如果这个请求到了B机器,B的内存中没有就会让重新登录
所以登录A机器的时候我们应该把token值写入到redis中,A/B机器登录,都从redis中获取token进行校验

单点登录的原理:

基于Redis的单点登录相关推荐

  1. 基于.Net的单点登录(SSO)解决方案

    基于.Net的单点登录(SSO)解决方案 前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助. ...

  2. 【No.1】基于Cookie的单点登录(SSO)

    2019独角兽企业重金招聘Python工程师标准>>> 这篇主要说明基于Cookie的单点登录实现,以及Cookie的一些特性以及使用说明. 1.Cookie是什么,如何工作的 在程 ...

  3. 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心...

    基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...

  4. 基于Cookie的单点登录(SSO)系统介绍

    基于Cookie的单点登录(SSO)系统介绍 SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分.SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保 ...

  5. 基于SAML的单点登录介绍

    一.背景知识: SAML即安全断言标记语言,英文全称是Security Assertion Markup Language.它是一个基于XML的标准,用于在不同的安全域(security domain ...

  6. Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 单点登录简介 创建oauth2-client模块 修改授权服务器配置 网页单点登录演示 调用接口单点登录演示 oauth2-client添加权限校 ...

  7. SpringBoot+Vue+Jpa+Redis实现单点登录(一处登录,另一处退出登录)

    SpringBoot+Vue+Redis实现单点登录(一处登录,另一处退出登录) 一.需求 实现用户在浏览器登录后,跳转到其他页面,当用户在其它地方又登录时,前面用户登录的页面退出登录(列如qq挤号那 ...

  8. vue java实现登录_SpringBoot+Vue+Redis实现单点登录(一处登录另一处退出登录)

    一.需求 实现用户在浏览器登录后,跳转到其他页面,当用户在其它地方又登录时,前面用户登录的页面退出登录(列如qq挤号那种方式) 二.实现思路 用户在前端填写用户信息登录后,后台接收数据先去数据库进行判 ...

  9. SSO单点登录-基于cookie的单点登录

    1.概述 单点登录(Single-Sign-On),简称SSO,它的解释为:在多个应用系统中,只要登陆一次,便可以访问其它相互信任的系统.早期系统由于只有一个服务,因此只需要登录一次,就可以访问系统的 ...

最新文章

  1. 360金融首席科学家张家兴:我们如何做数据AI融合中台?
  2. c语言分支结构程序设计教学设计 赛课,《分支结构程序设计》教学设计.doc
  3. 华东师范大学2019年高等代数考研试题
  4. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹实验 四驱
  5. AUTOSAR从入门到精通100讲(十三)-autosar架构中的ASPICE模块
  6. 混频通信的matlab仿真,基于MATLAB的扩频通信系统仿真研究—上海交通大学
  7. JSP、Servlet中get请求和post请求的区别总结
  8. 整数去重(信息学奥赛一本通-T1117)
  9. K8s与Docker
  10. 二叉树的宽度 java_Java语言描述二叉树的深度和宽度
  11. java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
  12. 怎么隐藏电脑桌面计算机,怎么隐藏电脑桌面软件
  13. 见证人人的衰落,讲一句活该
  14. 基于FPGA的数字混频器设计与仿真
  15. 微信小程序怎么添加到主屏幕将微信小程序放到手机桌面?
  16. SpringBoot、VUE基于国产环境适配开发(国产系统、国产数据库、国产中间件)
  17. logback日志pattern_Logback日志基础及自定义配置代码实例
  18. 打造你的专属印章(c语言)
  19. 区块链+跨境支付有哪些优势?
  20. 固体核磁常见问题解答

热门文章

  1. Java创建一个文件变量_java如何定义一个类,创建它的成员变量和方法?
  2. 成功解决Exception “unhandled AttributeError“ module ‘h5py‘ has no attribute ‘File‘
  3. Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容
  4. WRF,WPS,WRF-Chem安装及编译步骤及bug总结(1)
  5. Agiliq署名的免费python书籍
  6. stm32f103zet6实现HTTP协议请求,UTF-8转码JSON打包上传
  7. 将js进行到底:node学习10
  8. Java assert
  9. BLE蓝牙hid键盘表
  10. c语言类型名占字节,在C语言中,不同类型数据所占字节数