您现在的位置是:主页 > news > 重庆网站推广团队/社群运营

重庆网站推广团队/社群运营

admin2025/6/9 6:51:20news

简介重庆网站推广团队,社群运营,个人爱好的网页设计培训,滕州公司做网站登录模式:单一服务器模式、单点登录、token模式 引文: 一文必搞懂-Session、Cookie、Token、单点登录 登录模式:单一服务器模式、单点登录、token模式 一、单一服务器模式 过程如下: 1.用户向服务器发送用户名和密码,…

重庆网站推广团队,社群运营,个人爱好的网页设计培训,滕州公司做网站登录模式:单一服务器模式、单点登录、token模式 引文: 一文必搞懂-Session、Cookie、Token、单点登录 登录模式:单一服务器模式、单点登录、token模式 一、单一服务器模式 过程如下: 1.用户向服务器发送用户名和密码,…

登录模式:单一服务器模式、单点登录、token模式

引文:

一文必搞懂-Session、Cookie、Token、单点登录

登录模式:单一服务器模式、单点登录、token模式

一、单一服务器模式

img

过程如下:

1.用户向服务器发送用户名和密码,服务器验证后,将用户信息存在当前对话(session)中,向用户返回session_id,并将session信息都写入用户的Cookie中。

2.用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。服务器收到session_id并对比之前保存的数据,确认用户的身份。

缺点:

  • 单点性能压力,无法扩展。

  • 分布式架构中,需要session共享方案,session共享方案存在性能瓶颈。

    在早期的互联网业务中,一般是使用单一服务器模式。但随着互联网的飞速发展,互联网用户的体量不断增大,单一服务器模式存在单点性能压力,无法扩展,以及单点失效等问题,已经不适合如今的互联网业务了,因此更多的,我们现在一般采用分布式微服务的架构来搭建项目。

二、集群分布模式

img

采用分布式的架构后,为了避免出现用户在一个模块登录后,访问别的模块时还需要重新登录的问题,我们需要使用单点登录(single sign on SSO)的模式来实现用户登录功能,这样用户只需要在一个模块登录后,访问其他模块就无需重复登录了。一般来说,实现单点登录主要有以下三种方式。

一、session 广播机制实现
在用户登录了一个模块后,这个模块的服务器会将用户的登录信息保存在本机的session中,然后通过session的广播机制,将这台服务器session中的内容复制到其他模块所在服务器的session中,这样其他的模块也就得到了用户的登录信息,用户在访问其他模块时就不需要重复登录了。

缺点:

但这种模式会多次复制session中的内容,造成用户数据的冗余存储,因此并不推荐使用这种方式实现单点登录。

二、使用 cookie + redis 实现
用户在项目的任意一个模块登录后,该模块会将用户的登录信息放到 redis 和 cookie 中

① 系统会先将用户的登录信息存入 redis中,其在 redis 的 key 值是生成的唯一值 (可以包含 IP、用户 id、UUID等值),value 值存放用户的登录信息。

② 然后系统会将这名用户在 redis 中的 key 值存入该用户的 cookie 中,用户每次访问任意模块时都会带着这个 cookie。

③ 用户在访问其他模块发送请求时,都会带着客户端的 cookie 进行请求,而客户端的 cookie 已经存入了该用户在 redis 中的 key 值,这样其他模块在处理用户的请求时,可以先获取用户 cookie中的 key 值,然后拿着这个 key 值到 redis 中进行查询,如果在 redis 中能查询到该用户相应的登录信息,就说明该用户已登录,就不需要用户进行重复登录了。

缺点:

认证服务器访问压力较大

三、使用 token + JWT 实现

1.什么是token

token又叫令牌,本质上就是一串无意义的字符串,一般放在请求头中,只要服务端能够从请求头中拿到token就能实现认证,但是用户信息是在服务器的每次请求都要用token去数据库中查询用户信息,数据库的压力太大了。

如果token携带了用户信息,不就不需要每次请求都访问数据库查了嘛,从token中直接解析出用户信息以及用户登录状态进行校验,这就是后来的JWT。给浏览器返回的token是一串带着用户信息的字符串。

2.什么是JWT

JWT全称是Java Web Token。其实就是特殊的token,理解起来就是携带着用户信息的token。所以JWT认证和token认证本质上是一样的。只不过token认证的用户信息是从数据库里查的。而JWT认证的用户信息是直接从token解析出来的。

3.token+JWT实现单点登录一般过程:

① 用户在项目的某个模块进行登录后,系统会按照一定的规则生成字符串,把用户登录之后的信息包含到这个生成的字符串中(token+JWT),然后系统可以将这个字符串返回,主要有两种返回方式:
(1)可以把字符串通过 cookie 返回
(2)可以把字符串通过地址栏返回

② 这样用户在访问其他的模块时,每次访问的地址栏都会带着生成的字符串(或者 cookie 中带着生成的字符串),被访问模块就可以获取地址栏中的生成字符串(或者获取 cookie 中的生成字符串),然后根据字符串获取用户信息,如果可以获取到用户的登录信息,说明该用户已登录,用户就不需要重复登录了。