谷粒商城实战笔记-233~235-商城业务-认证服务-单点登录流程-原理

本文主要是介绍谷粒商城实战笔记-233~235-商城业务-认证服务-单点登录流程-原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一,场景
  • 二,单点登录流程

一,场景

包含以下三节的内容:

  • 一,233-商城业务-认证服务-单点登录流程-1
  • 二,233-商城业务-认证服务-单点登录流程-2
  • 三,233-商城业务-认证服务-单点登录流程-3

单点登录的原理总结,假设有以下三个服务:

  • 单点登录系统,域名sso.com
  • 商城系统,域名mall.com
  • 营销系统,域名sales.com

二,单点登录流程

单点登录的流程如下:

  • 用户使用商城系统的某个需要登录的功能,比如加购物车,浏览器发出请求,因为没有登录,所以没有cookie信息
  • 商城系统的网关判定为未登录,响应浏览器重定向到单点登录系统的登录页
  • 用户在登录页输入用户名密码登录
  • 登录系统验证用户名密码,验证通过后,响应浏览器,浏览器保存cookie,注意cookie是保存在登录系统域名下
  • 登录系统重定向请求到加购物车界面,发出加购请求,架构请求携带登录系统创建的cookie
  • 商城系统的网关感知到cookie,向登录系统发出请求,登录系统判断cookie有效,并返回用户信息
  • 商城系统将加购物车请求转发到商城后台系统执行业务逻辑
  • 商城系统拦截商城后台系统响应,让浏览器保存cookie信息和用户信息
  • 第一次登录成功
  • 用户打开营销系统,发出一个需要登录的请求,营销系统网关接受到请求,判定没有登录
  • 营销系统网关将请求重定向到单点登录系统的登录界面
  • 浏览器向单点登录系统发出请求,这一步要特别注意,特别关键,上一步登录时已经保存了cookie,所以这一步浏览器向登录系统发出请求时会携带cookie
  • 单点登录系统接受到请求后,验证cookie,判定登录有效
  • 单点登录系统将请求重定向到用户对营销系统的请求,并附带cookie信息
  • 营销系统网关接收到请求后,感知到cookie信息,向单点登录系统发出请求,验证登录是否有效
  • 单点登录系统验证登录有效,返回用户信息
  • 营销系统网关将请求转发到营销后台
  • 营销系统网关拦截营销后台响应,在响应中添加cookie和用户信息
  • 浏览器接收到响应后,保存cookie和用户信息,下一次请求就会携带cookie信息
  • 至此,实现了一次登录,多系统共享的逻辑,用户虽然感受不到,但实际结果浏览器多次重定向

这篇关于谷粒商城实战笔记-233~235-商城业务-认证服务-单点登录流程-原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095771

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务