课程名称:SpringBoot+Vue3 项目实战,打造企业级在线办公系统
课程章节:第四章
主讲老师:神思者
课程内容:
1.评论区 问题延申
课程收获:
看到评论区 老师得回复 突发奇想 我也试着回答下
1. jwt 原理事什么
首先需要知道什么是单点登录
单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次 以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登 录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用 系统。
当一个工程项目用户群体非常庞大的时候,不可能把所有的数据放在一个服务器上,所以这个项目会有多个服务器。那么我们的用户在客户端发送请求,我们该向哪个服务器请求数据呢?这就需要nginx服务器来做这个工作了。nginx提供负载均衡的功能,当用户在客户端在vue中发送ajax请求之后,请求会转向nginx服务器,然后nginx会通过他的负载均衡策略,将请求均衡地转向不同的服务器。那么,如果用户先在一个服务器上登录了,存上了session文件,下一次再次登录的时候,nginx把请求转向了另外一个服务器,那用户是不是得再登录一次?再存一次session?那如果我们有100个服务器,1000个服务器呢?显然,使用cookie和session策略是存在缺陷的。根据上述的描述,我们也知道单点登录是什么意思了:nginx转发服务,只要转发到一个服务器上,那么我们下次再登录,不论nginx转发到哪个服务器上,都能够登录上。单点,指的是单个站点,单个服务器,而不是指单设备。
1.用户在第一次登录的时候,会将用户名、密码等信息传到我们的服务器上进行身份验证,验证成功后,服务器会存在的密钥对用户信息进行加密生成jwt,并返回给用户,用户将jwt存储下来。
2.用户在下一次登录的时候,向服务器发送jwt,服务器会提取发送过来的jwt前面两段和服务器中存放的密钥重新生成jwt,两个jwt做比较,如果相同,说明用户登录了,如果不相同,说明jwt被篡改了,阻止用户登录。
3.每个服务器上都存放相同的密钥,这样就能实现单点登录。
2. sa-token 是怎么踢人下线
StpUtil.logoutByLoginId(userId)
强制注销 和 踢人下线 的区别在于:
强制注销等价于对方主动调用了注销方法,再次访问会提示:Token无效。
踢人下线不会清除Token信息,而是将其打上特定标记,再次访问会提示:Token已被踢下线。
3.归档是怎么把文件上传到云盘
课程中 是 开通了tx云存储,每上传一次图片 就会发起一次ajax请求 将图片上传到 存储桶