前言

继上一篇博文:可跨域的单点登录(SSO)实现方案【附.net代码】虽然实现了单点登录,也存在很多不合理的地方。很多热心的朋友也给出了很多指导性的意见,特别是 LoveCoder提出的意见。

在很多亲自操刀过单点登录的朋友看来,单点登录很简单啊,不过如此。但是还有很多如我一样刚刚接触过或者没有接触过单点登录的朋友却不清楚单点登录具体该怎么做。虽然网上单点登录的教程很多很多,大都是实现思路、实现原理,真正涉及到代码级别的实现细节却很少。

单点登录产生的原因是为了解决多个子系统共享登录状态的问题,每个人的思想或者能力不同,实现方式可能都不尽相同。好比过河,各有各的招,有的人坐船过去,还有人拽着绳蹚水过去的,安全吗?坐船船会漏,拽绳绳会断,怎么办?每个人身上再绑个救生圈,这样安全了吗?不见得。针对某个问题域我们每个人都想给出一个完美的解决方案,而现实往往是因为个人能力或者公司业务情况所限而做不到完美。我们只能做到首先要保证能解决存在的问题,然后针对使用情况做各种优化,好的系统是用出来的而不是设计出来的。

在这一篇博文中,主要优化的地方是:将轮询跳转写cookie到各个分站改为使用ajax分发写cookie到各个分站。

如有不正欢迎指教

改进方案

是在上一篇博文:可跨域的单点登录(SSO)实现方案【附.net代码】的基础上进行的改进,如有疑惑请先查看上篇博文。

改进后的单点登录交互效果如下:

具体代码如下:

1.sso.com登录验证方法不再重定向,而是输出一段js代码进行ajax分发

后台代码如下:

对应的试图页面如下:

2.各个分站jump方法的改变如下:

3.a.com和b.com中需要登录的action验证方式的优化:

总结

解决问题:

1.不需要各个分站之间来回跳转写cookie,而是在sso.com以ajax分发的形式向各个分站写cookie

2.代码更加干净

未解决问题:

1.按需写cookie

2.安全性验证

3.不支持ajax登录

代码下载

SSODemoPro_ajax.7z

单点登录改进版-使用ajax分发cookie避免重定向轮询的更多相关文章

  1. 可跨域的单点登录(SSO)实现方案【附.net代码】

    SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否 ...

  2. [转] 可跨域的单点登录(SSO)实现方案

    SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前session是否 ...

  3. 可跨域的单点登录(SSO)实现方案

    可跨域的单点登录(SSO)实现方案 SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源( ...

  4. 单点登录,session,jsonp(待更新)

    单点登录理解: 单点登录系统设计: ajax跨域:

  5. 单点登录(SSO)详解

    背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便.但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次 ...

  6. redis缓存+session 实现单点登录

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

  7. 单点登录(SSO)解决方案介绍

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

  8. 单点登录(SSO)工作原理

    单点登录(SSO)工作原理 一.单点登录的介绍 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次 ...

  9. 前端单点登录(SSO)实现方法(二级域名与主域名)

    1.单点登录介绍 单点登录 SSO 全称 Singn Sign On .SSO 是指在多个应用系统中,用户只需要登录一次用户系统,就可以访问其他互相信任的应用系统.例如:在网易官网登录账户,那么再进入 ...

随机推荐

  1. Effective前端4:尽可能地使用伪元素

    伪元素是一个好东西,但是很多人都没怎么用,因为他们觉得伪元素太诡异了.其实使用伪元素有很多好处,最大的好处是它可以简化页面的html标签,同时用起来也很方便,善于使用伪元素可以让你的页面更加地简洁优雅 ...

  2. Angular2 小贴士 NgModule 模块

    angular2 具有了模块的概念,响应了后台程序的号召,高内聚 低耦合.模块就是用来进行封装,进行高内聚  低耦合的功能. 其实各人认为ng2 的模块和.net的工程类似,如果要使用模块中定义的功能 ...

  3. Kafka消息时间戳(kafka message timestamp)

    最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下.   Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 L ...

  4. 游戏启示录 关于Update的相关问题

    游戏启示录 关于Update的相关问题 这里说的Update是指的游戏的主循环.一般情况下.为了程序的方便控制我们一般只会有一个主循环.所有的游戏逻辑都会在这一个循环中完成.(额,其实这么做有点浪费. ...

  5. ubuntu 入门

    ubuntu 系统设置不全sudo apt-get install ubuntu-desktop uget aria2:下载工具http://www.xitongzhijia.net/xtjc/201 ...

  6. enote笔记语言(1)

    what                 是什么 why                  为什么 when                何时 where               在哪里 whi ...

  7. eclipse SE增加Web开发插件

    最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...

  8. 《HTML5》 Audio/Video全解

    一.标签解读 <audio> 标签属性 <audio id="media" src="http://www.abc.com/test.mp3" ...

  9. SVG动画

    动画原理 SVG动画,就是元素的属性值关于时间的变化. 如下图来说,元素的某个属性值的起始值(from)到结束值(to)在一个时间段(duration)根据时间函数(timing-function)计 ...

  10. VBA 格式化字符串 - Format大全

    VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...