关于会话模型其实网站已有很多帖子说明,其中有关于sessionid,cookie以及他们之间的关系,自己先了解吧

1 会话模型

会话模型是客户端和服务端交互的一种模型,会话模型友好的处理了客户端有无通信状态,不需要传输敏感数据等问题。

2 会话模型生命周期

2.1 开始阶段

客户端发起请求携带相关参数,如用户名与密码,服务器校验用户名与密码后进行授权,并将token(凭证)交回给客户端

2.2 保持阶段

每一次客户端带着由服务端颁发的token(凭证)交给服务端校验有效性然后访问具体接口,达到交互的目的,同时服务端监视token的是否超时等有效性

2.3 销毁阶段

当客户端主动退出登录时,即主动告诉服务端token失效并销毁,整个会话生命周期结束

以上会话生命周期揭露了最简单也是最本质的会话模型,来看一张流程图

3 sso

在会话模型中说明的会话生命周期已经简单本质化的阐述了会话模型。但是当我们的系统由1个变为多个的时候,或者说我们已经有了多个系统,我们每次在进行系统切换的时候都会进行登录,虽说简单但是比较麻烦,

像淘宝,一类的电商网站如果有上百个系统切换让你每次都要登陆那不得疯掉,于是单点登陆模型出现了,单点登录模型

3.1 sso模型

与会话模型一样,只不过大家都在sso中统一登陆,维持会话,等一些列活动,其实sso就是将多个会话模型服务实例统一为只有一个就好了,对于一个系统内部来说与我们的2一样,只不过在系统切换的时候我们需要将token带出来交给我们要访问的系统,要访问的系统得到token后,拿着这个token与服务器进行交互,对于sso来说认为你任然有效,来看一张流程图

3.2 系统切换免登过程

通过token的携带实现了多系统切换的免登录过程,这个跳转的具体过程看图所示

4 存在的不足

存在的不足那就是token放置在了url,不过我还没有想到其他方式,因为浏览器这样处理可以解决跨域读取cookie问题。安全性,说到安全性有人说什么url地址携带了token就不安全,我想问cookie就安全吗?

比如我们在浏览器控制台输入查看cookie不也是分分钟不安全,有什么不一样吗?说到安全要解决这个安全问题就得ssl或者公钥加密私钥解密等一些列安全策略了,而不是什么token爆不爆露看不看得见的问题了,如果你非要这么觉得那就是还没入门吧,呵呵。

以上是个人对于sso的实现与跨域实现的解决方法,如果有更好的方式解决,求之不得啊。

最新文章

  1. 三大框架SSH整合
  2. 初学RunLoop
  3. springmvc对同名参数处理-我们到底能走多远系列(44)
  4. 【leetcode】Single Number && Single Number II(ORZ 位运算)
  5. SSH框架中新建立实体类后的配置
  6. SpringMvc+Mybatis 框架搭建
  7. 新版的tomcat里面get请求通过http协议的时候似乎默认是UTF-8的编码了吗?
  8. Data Binding in WPF
  9. Project Euler problem 62
  10. Easyui几种布局方式的使用
  11. kubernetes入门之skydns
  12. Android事件处理概述
  13. 事件驱动的Python实现
  14. [IOI2007]训练路径
  15. 《C#并发编程经典实例》学习笔记—2.6 任务完成时的处理
  16. 序列化模块_pickle
  17. Hystrix入门与分析(二):依赖隔离之线程池隔离
  18. vs2005新建项目中没有ASP.NET WEB应用程序
  19. 启动和停止mysql的正确姿势
  20. java 常用第3方工具

热门文章

  1. [转]去掉IOS下的input 和textarea的内阴影
  2. 关于mysql 删除数据后(.MYD,MYI)物理空间未释放
  3. Hadoop原理之——HDFS原理
  4. spark启动原理总结
  5. stm32串口发送数据复位 第一个数据丢失
  6. 第4天 Java基础语法
  7. rtsp over tcp并设置多个options
  8. 001-快速排序(C++实现)
  9. 十分钟搭建和使用ELK日志分析系统
  10. sql,lambda,linq语句