day13 SpringBoot案例3 令牌技术、登录校验

本文详细介绍了SpringBoot中实现登录校验的思路,包括会话技术的实现方式,重点讲解了JWT令牌的组成部分及其作用。还讨论了如何在登录时生成和验证JWT令牌,以及使用过滤器和拦截器进行令牌校验。此外,还探讨了SpringBoot项目中的异常处理和全局异常处理器的实现。最后,提到了Filter与Interceptor的区别以及拦截器的拦截路径设置。
摘要由CSDN通过智能技术生成

登录校验的实现思路是怎样的?

项目中访问核心资源,通常都要进行登录校验,访问京东商城的订单,必须要先登录才能访问查询

实现思路: 可以在访问资源前进行访问的拦截,判断你当前会话是否有登录,如果没有登录拒绝访问。如果是登录的那就可以进行访问资源。

  • 用户输入用户名和密码提交登录请求。
  • 服务器接收登录请求并验证用户名和密码的合法性。
  • 如果用户名和密码合法,服务器生成一个会话(Session)并将用户的身份信息保存在会话中。(SpringBoot的web环境中,我们要想获取Session会话对象,直接就可以在Controller方法的形参中声明)( public Result login(@RequestBody Emp emp, HttpSession session))
  • 服务器将会话ID返回给客户端,通常是通过在浏览器的Cookie中设置会话ID。
  • 客户端在后续的请求中将会话ID附加在请求的头部或参数中发送给服务器。
  • 服务器接收到请求后,从请求中获取会话ID,并根据会话ID查找对应的会话信息。
  • 如果会话存在且有效,服务器认为用户已登录,并继续处理请求;如果会话不存在或已过期,服务器返回错误信息,要求用户重新登录。
  • 在用户退出登录或会话过期时,服务器会删除对应的会话信息,客户端需要重新进行登录验证。

会话技术有哪些方式可以实现?

传统技术可以使用cookie+Session去实现会话,进行会话跟踪。但是这种传统方式有弊端: 不能在集群服务中灵活使用,手机客户端无法支持cookie。
为了解决这些问题,可以使用令牌技术来解决。令牌技术优点是:可以在集群服务中灵活使用,移动端也可以支持。

1,Cookie:Cookie存储会话信息,服务器在响应中设置一个包含会话ID的Cookie,客户端在后续的请求中将会话ID通过Cookie发送给服务器。服务器根据会话ID查找对应的会话信息。Cookie的优点是简单易用,但存在一些安全性和跨域限制。

2,Session:使用Token来实现无状态的会话管理。服务器在登录成功后生成一个Token,并将Token返回给客户端。客户端在后续的请求中将Token附加在请求的头部或参数中发送给服务器。服务器根据Token来验证用户身份和权限。Token的优点是无状态、可扩展性强,适用于分布式系统。

  • 服务端集群环境下Session的共享问题。
  • 移动端APP端无法使用Cookie。

 令牌技术

  • 使用 json 作为数据传输,有广泛的通用型,并且体积小,便于传输;
  • 优点:可以实现无状态的会话管理,服务器不需要存储会话信息,从而提高系统的可扩展性和性能。同时,令牌可以灵活地应用于不同的客户端,如Web应用、移动应用等。

JWT令牌组成部分有哪些,各自作用是什么?

三部分组成:header.payload.signature 部分的数据会以Base64的方式进行编译
第一部分:Header(头),作用:记录令牌类型、签名算法等

第二部分:Payload(有效载荷),作用:携带一些用户信息及过期时间等

第三部分:Signature(签名),作用:防止Token被篡改、确保安全性

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值