单点登陆和无状态登陆

article/2025/9/3 19:46:33

很多人都听说过单点登陆。今天我们来说说什么是单点登陆和无状态登陆。

传统的项目都是使用session来验证登陆,但是在分布式项目中使用session是不行的。因为每个服务都是一个独立的项目,那么我们将服务拆分,肯定会有一个登陆的模块。如果将用户信息保存到session中那么也只有对登陆这个模块有效。而且使用session做登陆的话还有很多缺点,比如服务器要保存每个用户的session这样做的话对服务压力太大,而且session无法做分布式项目


那么接下来就来分析一下什么是单点登陆,

单点登陆也叫有状态登陆,对应的无状态登陆在下面也会分析。

 

 

看上图我们知道,我们专门弄了一台单点服务器,用户登陆成功后会将该用户的信息保存到单点服务器中,然后单点服务器给用户返回一个Token,用户每次请求时都会带上Token,与之对应的服务将拿到用户携带的Token,然后去单点服务器上验证该Token是否有效,如果有效的话单点服务器会返回当前用户的信息。这个就是传统的单点登陆,也就有状态登陆

有状态登陆的不足:

  1. 单点服务器压力比较大,因为既要保存用户信息然后验证Token是否有效,
  2. 过程过于繁琐,每次请求都会去单点服务器验证

 

无状态登陆:如果说有状态登陆就是要保存用户的信息的话,那么无状态登陆就是不需要保存用户的信息了。

 

无状态登陆有两种,一种是采用对等盐,一种是采用非对等盐(非对称加密)

采用对等盐的话,每次我们都要去授权中心验证Token是否有效,而采用不对等盐的话服务自己就能验证了。

对等盐应该看上图就能够明白,这里来说说不对等盐,

采用RSA256加密来生成公钥私钥,并且在授权中心采用私钥来生成Token

  • 采用私钥生成的Token,私钥公钥都能解
  • 采用公钥生成的Token,只有私钥能解

那么其他每个服务都持有公钥,而授权中心只需要用私钥加密即可,这样每个服务就能自己解析Token,而无需去授权中心

这里再说一下,如果你觉得每个服务上都要解析Token太麻烦了,那么你是对的,一般我们都会采用网关,在用户经过网关的时候就会验证该Token是否有效,如果失效了网关就会拦截


http://chatgpt.dhexx.cn/article/M3wf3QHo.shtml

相关文章

windows文件句柄修改

找到如下注册表分支: HKEY_LOCAL_MACHINE – SOFTWARE – – Microsoft – – – Windows NT – – – – CurrentVersion – – – – – Windows 在右侧窗格中可以看到名为“GDIProcessHandleQuota”与“USERProcessHandleQuota”的注册表项; GDIProcessHandleQuo…

Linux 查看文件句柄信息

查看系统的最大文件句柄数和文件句柄的使用者PID ulimit -n查看当前系统的最大句柄数显示如下 ulimit命令详解 ulimit -HSn x设置当前系统的文件句柄数为x 以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄…

Windows查看文件句柄

2019独角兽企业重金招聘Python工程师标准>>> 图形界面方式 打开任务管理器 2. 性能tab,点击链接打开资源监视器; 3. 现在cpu tab,关联的句柄后面的输入框可以输入你要搜索的文件路径,可模糊匹配; 命令方式 Windows系统本身并不内置命令查看句…

linux文件句柄数

1、问题阐述: too many open files:顾名思义即打开过多文件数。 不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常…

windows 查看打开的文件句柄

经常当我们删除文件时,有时会提示【操作无法完成,因为文件已在另一个程序中打开,请关闭该文件并重试】, 这个时候可以资源监控器进行查看运行的进程打开的句柄列表。 具体结果如下显示:

Linux下文件句柄

Too many open files 如果Java打开文件的时候,没有关闭IO流,那么打开到一定数量,在Linux下就会抛出Too many open files的异常。 public static class HoldIOTask implements Runnable {Overridepublic void run() {int count0;try {while(t…

【Linux】文件句柄说明

Linux 文件句柄说明 Linux中所有的事物或资源都是以文件的形式存在,比如消息、共享内存、连接等,句柄可以理解为指向这些文件的指针。 对于这些句柄,Linux是有数量限制的,单个进程默认可以打开的句柄数上限,可以用以…

windows 文件句柄查询

windows经常出现删除/剪切文件时提示文件被占用的问题 打开任务管理器, 选择“性能”选项卡 2. 打开资源管理器, 在关联句柄查询框中输入关键字,过滤查询,然后右键选中对应项,结束任务即可释放句柄

文件句柄

一、文件句柄是什么? 对象在内存中是经常来回移动的,如何快速定位找到这个对象呢? 句柄说: “我来帮你找” windows系统给出的方案 1.进程创建时,windows系统为进程构造了一个句柄表 2.当该进程希望获得一个内核对…

linux开关机命令

shutdown -h now/或者是具体的时间hh:mm; 关机; -h:关机。;-r: 重启 ;-c: 取消前一个关机命令。一般就只用shutdown这个命令;halt,poweroff,init 0 关机;init 6&#xff…

Linux命令之关机命令

shutdown命令可以用来进行关闭系统,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机使用者权限:管理员用户 语法如下: shutdown [-t seconds] [-rkhncfF] time [message] 参数说明: …

Linux 关机 命令

一、正确的关机方法 如果直接按下电源开关,数据有可能中断。若不正常关机,则有可能造成文件系统的损毁。因此,正常关机情况下,应注意以下: 1)查看系统的使用状态 查看目前有谁在线,使用“who…

部署图详解

部署图 一、部署图概要 ​ 部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图…

EA_画部署图

EA_画部署图 新建部署图增加个性化图标画一个范围Boundary 新建部署图 右键–>添加图 增加个性化图标 右键图标–>外观–>选择可替代图像 选择自定义的图标 画一个范围Boundary

UML-----构件图与部署图

构件图和部署图这两个图都属于实现图。它是用来描述实现方面的信息。构件图用来显示一组构件之间的组织及依赖关系;而部署图则用来描述系统硬件的物理拓扑结构以及在此结构神执行的软件。 构件图 构件图是从软件结构的角度来描述一个系统的主要功能,如子…

移动端UML图应用之UML结构图——包图、部署图和组件图

系列文章目录 移动端UML图应用之UML图简述 移动端UML图应用之UML行为图——用例图、活动图和状态机图 移动端UML图应用之UML交互图——顺序图和通信图 移动端UML图应用之UML结构图——包图、部署图和组件图 移动端UML图应用之UML结构图——类图 文章目录 系列文章目录一、包图…

【UML建模】(7) UML建模之部署图

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 ❤️ 2. Python爬虫专栏&#xf…

UML—部署图

一、简介: 部署图(Deployment Diagram)又名实施图。用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。显示了系统的硬件、安装在硬件上的软件、以及用于连接异构机器之间的中间件。系统所有的实施图一起表示系统的完整结构。具有以下…

【UML】部署图和构件图

一、实现图 1.UML中大部分模型描述了逻辑和设计方面的信息 2.实现图用来描述实现方面的信息 3.他从系统的层次来描述: (1)硬件的组成和布局 (2)软件系统划分和功能实现 4.实现图包括 (1)…

UML-部署图

今天我们来介绍下什么是部署图 一、部署图是什么? 部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系…