
文章插图
二、SpringBoot 整合 JWT 单点登录1、简单知道下概念(session、SSO、token)研究过程中 。前后端通过 是一种无情况的协议 。也即应用(浏览器)每当请求都会被服务器独立处理 。每一个请求间没有任何关系 。这就导致了一个问题:服务器怎么样知道某个请求是哪个应用(玩家)发送的?
(1)解决途径一:既然。
session 使用流程:
Step1:玩家登录 。应用向服务器发送玩家名、密码等玩家信息。
Step2:服务器验证资料。并将通过验证的玩家信息保存在 session 中 。
Step3:服务器响应请求 。并将 session_id 返回给应用。
Step4:应用接收返回资料。并将 session_id 保存在 cookie 中 。
Step5:下一次应用发送请求时 。会从 cookie 中取出 session_id 并发给服务器 。
Step6:服务器通过 session_id 找到相对应的session 资料。解析出玩家信息。从而知道是哪个应用(玩家)发送的请求 。

文章插图
session 解析:由于需要在服务器中进行存储 。若玩家数量过多 。会消耗很多存储空间 。且一般一个杂乱的业务中一个请求会进行多次转发操作 。每当都需要经过session_id 查询 session 资料的操作 。无异于增加服务器压力 。
具有局限性 。适合用来经典的单一服务器模式 。如果服务器是使用集群的方法部署 。那么就需要对 session 进行共享处理 。
对于多服务器模式 。有什么好的登录方案吗?
可以使用 单点登录 方法解决 。
(2)解决途径二:
单点登录(Single Sign On) 。简称 SSO 。指的是在多个系统中 。玩家只要登录一次 。就可以采访任何互相信任的系统 。也即 对于多个系统不用重复进行登录操作 。
SSO 使用流程:
Step1:玩家初次采访系统时 。由于还未登录 。会被转向登录窗口用来玩家登录 。
Step2:玩家信息发送到认证服务器 。并对其进行校验 。通过后返回一个认证信息(令牌) 。
Step3:玩家再一次采访系统时 。带上这个令牌 。作为认证依据 。
Step4:系统服务器接收请求后 。将令牌发给认证服务器进行校验 。若通过校验则可以采访系统服务器 。

文章插图
sso 解析:
玩家信息可以在认证服务器独立保存 。便于分布式部署 。也完全可以自己定义设置安全策略 。但同一时间增加了认证服务器的压力 。常见 sso 实现机制即为 token 。
(3)解决途径三:
基于 token 实现单点登录 。简单理解:令牌 。是由服务端生成的一串字符串 。作为应用进行请求的一个标识 。
token 使用流程:
Step1:玩家登录 。应用向服务器发送玩家名、密码等玩家信息。
Step2;服务器验证资料。并将验证通过的资料生成一个 token(加密字符串) 。
Step3:服务器响应请求 。并将 token 返回给应用。
Step4:应用接收返回资料。将 token 保存在 cookie 或者 localStorage、sessionStorage 中 。
Step5:下一次应用发送请求时 。会带上这个token 。
Step6:服务器验证 token 。从而获得玩家资料。

文章插图
注:通过 token 与 session 的使用流程比较 。实现逻辑就这样看起来是类似的 。但是还是有区其他。使用 token 时不需在服务器存储玩家信息。直接从 token 中就可以解析出玩家信息。session 需要在服务器存储玩家信息(多个服务器时需要实现 session 共享 。不然多个系统需要进行多次登录) 。所以使用 token 便于拓展业务(不需你一定要知道在哪个服务器进行登录操作) 。
token 解析:
token 无情况、且不需要将信息存储在 session 中 。便于扩展 。但是由于 token 存储在应用。服务端无法对其进行销毁(可以设置过期时光) 。
选用token 。可以自己定义设置加密、解密字符串的 规则 。但是为了标准化 。就得引入 JWT 。
(4)解决途径四:
使用 JWT 实现 token 。
服务器验证资料通过后 。将资料封装成 json 对象并发送给玩家(token) 。
【SpringBoot+Vue+ElementUI实现后台管理系统模板 后台管理系统模板使用教程】应用接收 JWT 后将其存储 cookie 或者 localstorage、sessionstorage 中 。
下次请求时 。可以将 cookie 作为 请求主体资料发送 。
2、简单知道一下 JWT(1)什么是 JWT?
- 如何实现快速建站?
- 网站后台怎么搭建?
- 准备买个移动硬盘备份电脑数据,有没有什么好用的软件可以实现二者之间的备份?
- 以大疆无人机公司的人工智能开发能力,如果给他们一台X-47B原机硬件,他们能否实现航母起降等功能呢?
- 胡锡进 百科 胡锡进:目前实现盈利2829.17元
- 你最想养的宠物猫是什么品种?现在实现了吗?
- b站如何盈利 b站实现盈利了么
- 后台应用刷新是什么
- 很多人在讲一周过大鱼号原创技巧,有什么快速实现的方法呢?
- 赵匡胤和朱元璋都曾执意迁都西安,为何最终没能实现?
