谷粒商城实战(017 业务-单点登录)

2024-04-24 04:20

本文主要是介绍谷粒商城实战(017 业务-单点登录),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第231p-第p235的内容


介绍

单点登录(Single Sign-On,SSO)是一种身份验证服务,允许用户使用一组凭据(例如用户名和密码)登录到多个相关但相互独立的软件系统中。在用户进行了一次登录认证后,他们就可以访问其他受信任的系统而无需重新进行身份验证。

SSO 的实现通常包括以下组件:

身份提供者(Identity Provider,IdP):负责认证用户并颁发令牌。用户只需要在身份提供者进行一次登录,然后可以通过令牌访问其他受信任的系统。

服务提供者(Service Provider,SP):受信任的应用程序或服务,依赖于身份提供者来验证用户身份。SP 接受来自身份提供者的令牌,并使用该令牌来授权用户访问其资源。

令牌(Token):由身份提供者颁发的安全令牌,包含有关用户身份和权限的信息。SP 在接收到令牌后,通过验证令牌的签名和有效期来确认用户的身份,并决定是否授权用户访问。

实现 SSO 的方法有多种,其中包括:

基于标准协议的 SSO:使用标准协议(如OAuth、OpenID Connect、SAML等)来实现 SSO。这些协议定义了身份验证和授权的流程,使得不同的系统可以与不同的身份提供者进行集成。

集中式身份管理系统:使用专门的身份管理系统来集中管理用户身份和权限,各个系统通过与该身份管理系统进行集成来实现 SSO。

基于令牌的 SSO:用户在登录时获取一个令牌,然后将该令牌用于访问其他系统。这种方式可以避免在每次访问时都需要与身份提供者进行通信。

SSO 的优点

包括提高用户体验、简化身份管理、减少密码重复使用等。然而,也需要注意安全性和隐私保护等方面的考虑,确保用户的身份信息不被泄露或滥用。

在这里插入图片描述
一处登录处处可用

单点登录示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
火绒也可以直接修改hosts(不推荐)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
已经聚合了其他三个项目,所以打包一次其他的都会打包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改配置文件重新打包
在这里插入图片描述

在这里插入图片描述

失败 原因 无法在maven仓库里找到核心包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还是报错的话 就整个项目重新打包

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
跳转到
在这里插入图片描述
在这里插入图片描述

编写单点登录

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
选择springBoot2.1.12版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里写配置到nacos里好一些,这种可能会被修改的,上线之后,不让改了,写配置可以用nacos改

响应里带location 是要重定向到这个location上
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

加粗样式
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
命令浏览器重定向到这个网址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新建第二个客户端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用@CookieValue标签获取当前请求的cookie值
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

cookie是放在sso域名下的,不管访问哪个客户端,都会判断是否登录,没有登录都会来到sso下,因为第一个客户端登录了留下了cookie并且在sso域名下,第二个就不用再登录就能携带第一个客户coo

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

在单点登录认证系统里添加一个方法来解析token

在这里插入图片描述

在客户端的单点登录方法里调用认证系统的解析方法

这里不要用feign 因为认证系统可能不是java写的(如可能是php写的) (openFeign是springCloud封装的http请求)
最好用http工具类 如HttpUtils或spring的restTemplate
在这里插入图片描述

得到响应的值
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
要登录其他人的得先退出登录,这个单点登录解决的是多个项目之间公用一个登录号
在这里插入图片描述

效果

在这里插入图片描述

在这里插入图片描述

这里使用的是cookie和session进行单点登录,现在已经不流行了,可以使用jwt + serurity单点登录


这篇关于谷粒商城实战(017 业务-单点登录)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

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验证码的登录实例

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

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕