一.Session使http协议成为有状态协议(浏览器cookie本地这个session,服务器端也有这个session)

1.ajax前端登陆无法保存session,造成无法维持登陆状态(http本身就是无状态协议,登陆就是要变成有状态协议)?怎么解决?

:后台一直显示没有登陆,虽然前端已经登陆了。(默认用session保持的登陆状态)

1).查看前端是否传sessionID过来了,session是保存在客户端的cookie里的,同时又是保存在服务器端的,两端都有session才能保持登陆状态嘛。

2).果然,发现虽然登陆成功了,但是后面的接口请求,http header里并没有传过来session。

3).就需要登陆操作后,js调用浏览器存储下来刚刚得到的sessionID。

但前端是无法存储数据的,只能通过调用浏览器的cookie来进行存储这个session。下次再调用时候传过来这个sessionID。

二.Token使Http协议成为有状态协议

1.理解流程和session一样,要生成一个数据,浏览器前端和后端都有的中介介质,才能让前后端成为有状态协议。

怎样维持状态?当然是要有共同的东西啊,才能维护有状态协议。

具体HTTP成为有状态协议步骤:

1).登陆操作行为时:传过来用户名和密码,判断是否正确。如果正确,则产生session(服务器容器会自动生成session,这时候你只需要在这个session里存储数据即可)或者生成一个Token。

注:产生session/Token这个步骤永远在登陆接口里,用户名或者密码验证成功后。

2)将登陆成功后产生的这个sessionID或者Token返回给前端,前端进行保存,后续其他接口要传入这个数据。

三。Token和Session区别

1)Token和Session的区别:

  Token是完全由程序员自己决定生成策略的。并要程序员自己要想好这个Token存储在哪里,Token不像Session由容器自己来存储和维护(Session就是一个cocurrenthashmap)。所以程序员自己要决定好在哪里存储Token,一般都要利用专门的Redis缓存服务器来存储这个Token。

  Session保存在本地服务器容器中,程序员不用管怎么生成,只需要登录成功后向本例的Session里面塞入数据即可。Session你需要担心的就是因为是本地存储,存在内存被撑爆的风险,内存不够用啊怕。所以用Session,只适用于用户量比较小的场景,比如后台管理系统等。

2)Session或者Token都是有保质期的,避免长期生成及避免内存被撑爆。自己生成的Token也要有保质期,Redis可以设置保质期。

Tomcat默认生成的Session生命周期是30分钟,

四.SSO单点登陆说白了就是在单独一个地方负责去存储和验证这个Token。

SSO单点登陆说白了就是在单独一个地方负责去存储和验证这个Token。

SSO单点登陆说白了就是在单独一个地方负责去存储和验证这个Token。

每个业务系统都去这个单点登陆服务器去请求生成Token,和验证某个Token的有效性。

每个业务系统都去这个单点登陆服务器去请求生成Token,和验证某个Token的有效性。

每个业务系统都去这个单点登陆服务器去请求生成Token,和验证某个Token的有效性。

三。JWT变相实现让HTTP成为有状态协议

原理:每次的请求,jwt算法都会返回下次访问需携带的Token,这样两端都不需要保存Token或者Session。

所以JWT要做的就是1.检验本此传入请求的Token有效性及2.产生下次访问旭携带的Token

session问题总既然(深入理解)&Token问题理解&sso单点登陆理解实现的更多相关文章

  1. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...

  2. sso单点登录系统(解决session共享)

    场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服 ...

  3. 快速理解Token,Cookie,Session

    在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie ...

  4. [深入理解Android卷一全文-第八章]深入理解Surface系统

    由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版.而知识的传播不应该由于纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. ...

  5. .NET Core2.0+MVC 用session,cookie实现的sso单点登录

    博主刚接触.NET Core2.0,想做一个单点登录的demo,所以参考了一些资料,这里给上链接: 1.http://www.cnblogs.com/baibaomen/p/sso-sequence- ...

  6. 深入理解跨域SSO(单点登录)原理与技术

    一:SSO体系结构 SSO ​ SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...

  7. [深入理解Android卷一全文-第十章]深入理解MediaScanner

    由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该由于纸质媒介的问题而中断.所以我将在CSDN博客中全文转发这两本书的全部内容. ...

  8. 深入理解跨域SSO单点登录原理与技术

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 一:SSO体系结 ...

  9. Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)

    上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程: /** * 根据token获取用户信息 * ...

随机推荐

  1. Python学习 Day 8 继承 多态 Type isinstance dir __slots__

    继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base clas ...

  2. CAS介绍

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

  3. 使用Let's Encrypt 生成免费的ssl证书的详细过程

    参考连接:https://github.com/diafygi/acme-tiny 中文:https://hacpai.com/article/1487899289204 目前我了解可以生成免费证书的 ...

  4. Java C

    先说一下自己叫什么,免得面试的人张冠李戴. 介绍自己有几个方面:1学什么专业的那方面学的过硬,可以说的具体点. 2以前做过什么.(这家公司要你肯定是和你的经历有关.) 3现在来这家公司的目的是什么(当 ...

  5. Hadoop环境搭建、启动和管理界面查看

    一.hadoop环境搭建: 1. hadoop 6个核心配置文件的作用:core-site.xml:核心配置文件,主要定义了我们文件访问的格式 hdfs://hadoop-env.sh:主要配置我们的 ...

  6. POJ 1664 放苹果( 递推关系 )

    链接:传送门 思路:苹果m个,盘子n个.假设 f ( m , n ) 代表 m 个苹果,n个盘子有 f ( m , n ) 种放法. 根据 n 和 m 的关系可以进一步分析: 特殊的 n = 1 || ...

  7. 全国高校绿色计算大赛 预赛第三阶段(Python)(随机数)

    只提交了随机数 (真心不会 T-T ) import csv import random import pandas as pd import numpy as np # 预测结果文件:src/ste ...

  8. 零基础入门学习Python(6)--Python之常用操作符

    前言 Python当中常用操作符,有分为以下几类.幂运算(**),正负号(+,-),算术操作符(+,-,*,/,//,%),比较操作符(<,<=,>,>=,==,!=),逻辑运 ...

  9. tcpdump用于抓取tcp数据包

    一.简单使用:-c监听次数.-v打印详情.host后接监听地址 1.1.监听 tcpdump -c -v host www.baidu.com 1.2.访问被监听的网址: 1.3.查看监听的数据:

  10. composer install提示需要输入账号解决方法

    1.问题描述:输入composer install提示需要输入账号,如下所示: 2.解决方法,改用社区的源:composer config -g repo.packagist composer htt ...