关于会话模型其实网站已有很多帖子说明,其中有关于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的实现与跨域实现的解决方法,如果有更好的方式解决,求之不得啊。

会话模型与SSO的更多相关文章

  1. Django 1.10 中文文档------3.3.8 会话sessions

    django支持匿名会话.它将数据存放在服务器端,并抽象cookies的发送和接收过程.cookie包含一个会话ID而不是数据本身(除非你使用的是基于后端的cookie). 3.3.8.1 启用会话 ...

  2. 会话session

    因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...

  3. 根据CAS协议写的简单的SSO框架

      前言: 考虑到现在分布式应用都不可或缺的一个重要部分:单点登录,决定花点时间去学下.本来想直接上现成的CAS框架的,初步的了解了一下后,觉得这个太庞大了,而且不好定制,要完全深度用起来也没那么简单 ...

  4. django会话session

    因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...

  5. c++ 网络编程(九)LINUX/windows-IOCP模型 多线程超详细教程及多线程实现服务端

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9661012.html 先讲Linux下(windows下在后面可以直接跳到后面看): 一.线程 ...

  6. 借助xxl-sso实现SSO

    前言 市场上一下主流的SSO技术搭配方案: SpringSecurity + OAuth2 SpringSecurity + CAS 功能较弱,对前后端分离的项目支持不是很好 Shiro + CAS ...

  7. .NET Core中JWT+Auth2.0实现SSO,附完整源码(.NET6)

    一.简介 单点登录(SingleSignOn,SSO) 指的是在多个应用系统中,只需登录一次,就可以访问其他相互信任的应用系统. JWT Json Web Token,这里不详细描述,简单说是一种认证 ...

  8. 第六章:Django 综合篇 - 6:会话session

    因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...

  9. 集成基于CAS协议的单点登陆

    相信大家对单点登陆(SSO,Single Sign On)这个名词并不感到陌生吧?简单地说,单点登陆允许多个应用使用同一个登陆服务.一旦一个用户登陆了一个支持单点登陆的应用,那么在进入其它使用同一单点 ...

随机推荐

  1. 「PHP」设计模式介绍

    引言   最近再看PHP设计模式相关的一些技术文章,网上有关PHP的设计模式范例很少,这里做一些总结仅供参考,不足之处望提出. 参考资料: <大话设计模式>程杰   什么是设计模式   设 ...

  2. 最完整的数据倾斜解决方案(spark)

    一.了解数据倾斜 数据倾斜的原理: 在执行shuffle操作的时候,按照key,来进行values的数据的输出,拉取和聚合.同一个key的values,一定是分配到一个Reduce task进行处理. ...

  3. JS第一周学习笔记整理

    目录 JS正式课第一周笔记整理 JS正式课第一周笔记整理 webstorm : 代码编辑器 浏览器: 代码解析器: Git : 是一个工具;用于团队协作开发项目管理代码的工具:在工作中用git.svn ...

  4. Old ST-LINK firmware detected.do you want to upgrade it?已解决,stlink升级

    错误提示: 原因: stlink固件太旧了, 解决办法: 升级stlink固件,升级方法: 1. 下载st link utility工具. 官网下载:https://www.st.com/conten ...

  5. 深圳Uber司机本周(7.13-7.19凌晨4:00)的奖励政策

    本周(7.13-7.19凌晨4:00)的奖励政策为: 佣金返还: 车费的20%适用于所有产品(不包括Tesla)无获取条件 翻倍补贴: 每周一到周四07:00-10:00/17:00-22:00:车费 ...

  6. GitHub 配置指南

    Git和GitHub的区别 GitHub术语解析 配置使用 注册GitHub帐号 创建Git 创建库 复制库 社交化 Git和GitHub的区别 Git是一个分布式的版本控制系统,与SVN类似:最初由 ...

  7. 学习Drupal一个容易被忽视的问题

    刚刚修复了一个问题,一个非常小的问题,但我花了2-3小时才查明原因并修复. 总结下来我忽视了一个非常常见的问题或者没有养成一个好的习惯. 问题现象是:论坛发帖,只有editor以上权限的人可以发帖,也 ...

  8. nginx下pagespeed使用详解

    目录 1.简介 2.安装 2.1脚本安装 查看该脚本的如何使用 使用脚本自动安装 替换以前的nginx 2.2 手动安装 先安装基本依赖 构建pagespeed 重新编译安装nginx 3.配置 3. ...

  9. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 – 员工离职管理

    C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 – 员工离职管理 当公司有几万人,上千家加盟网点,几个庞大的直属分公司后,系统账户的有效管理也是一个头疼的问题,把所有的帐户及时进行科学 ...

  10. 「知识学习&日常训练」莫队算法(一)(Codeforce Round #340 Div.2 E)

    题意 (CodeForces 617E) 已知一个长度为\(n\)的整数数列\(a[1],a[2],-,a[n]\),给定查询参数\(l,r\),问\([l,r]\)内,有多少连续子段满足异或和等于\ ...