SpringBoot案例3 登录校验

day13 SpringBoot案例3 令牌技术、登录校验 抛出异常:直接抛出异常,然后在Controller的方法中进行try…判断请求url中是否包含login,如果包含,说明是登录操作,放行。第一部分:Header(头),作用:记录令牌类型、签名算法等。2,定义登录校验过滤器类,实现 Filter接口,并重写。判断令牌是否存在,如果不存在,返回错误结果(未登录)。解析token,如果解析失败,返回错误结果(未登录)。3,配置Filter拦截资源的路径:在类上定义。任务:把登录校验功能实现完善,并集成全局异常处理。(依赖,创建,校验)项目中异常是怎么处理的? 阅读详情

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

项目中访问核心资源,通常都要进行登录校验,访问京东商城的订单,必须要先登录才能访问查询。实现思路:可以在访问资源前进行访问的拦截,判断你当前会话是否有登录,如果没有登录拒绝访问。如果是登录的那就可以进行访问资源。

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

传统技术可以使用Cookie+Session去实现会话,进行会话跟踪。但是这种传统方式有弊端: 不能在集群服务中灵活使用,手机客户端无法支持cookie。

为了解决这些问题,可以使用令牌技术来解决。令牌技术优点是:可以在集群服务中灵活使用,移动端也可以支持。

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

JWT令牌由Header、Payload、Signature三部分组成,每部分中间使用点(.)分隔,比如:xxxxx.yyyyy.zzzzz

header.payload.signature 部分的数据会以Base64的方式进行编译。

这三部分的作用分别是:
header: 指定令牌类型,加密的算法。..

payload:存储一些令牌要携带的信息,比如用户的基本信息id,username,过期时间

signature : 保证令牌不被算改。

四、怎么使用JWT令牌?(依赖,创建,校验)

1). pom.xml 引入jwt的依赖

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

 2).  生成JWT令牌

String jwt = Jwts,builder()
.addclaims(携带的数据,是一个map集合)
.signWith(SignatureAlgorithm,HS256,秘钥)
.setExpiration(new Date(System,currentTimeMillis() + expire))
.compact();

3).解析令牌

Claims claims = Jwts.parser(l
.setsigningKey(秘钥)//要和创建令牌时的秘钥保持一致
.parseClaimsJws(令牌》//要解析的令牌
.getBody();

4).当解析不报异常,此时就代表令牌是有效的。报任何异常都意味着令牌失效。

五、项目中在什么时候去生成令牌?

在登录时生成令牌,在访问核心资源的时候进行令牌的校验

六、当前端携带令牌访问资源时怎么去拦截校验令牌的合法性?

有两种方案可以实现:
1、过滤器
2、拦截器

七、过滤器具体使用的步骤是怎样的?

使用步骤如下
1、创建一个类实现接口Filter接口,重写doFilter方法

2、类上面需要加注解: @Webpilter(urlPatterns =“/")

3、在引导类中注解: @ServletComponentscan
4、要做具体的拦截业务在doFilter中完成

public void doFilter(ServletRequest reg, ServletResponse rsp,FilterChain chain){
//登录校验拦裁
XXXXXX
//放行(如果不放行,就不执行如下语句)
chain.doFilter(reg,rsp);
yyyyyyy
}

八、拦截器具体使用的步骤是怎样的?

Interceptor使用步骤如下:

1、创建一个类实现HandlerInterceptor接口,上面加上注解

@Component

 public class LoginCheckInterceptor implements HandlerInterceptor

2、重写方法方法
        preHandler 方法可以实现在资源访问前的拦裁

3、写配置类,在里面进行注册:
        3.1 写一个类叫做配置,实现接口WebMvcConfigurer,并在类型上加上注解: @Configuration
      

  @Configuration
        public class WebConfig implements WebMvcConfigurer

        3.2 注入拦截器对象,重写方法addInterceptors 进行注册,并设定拦裁路径
 

@configuration
public class WebConfig implements WebMvcconfigurer {

@Autowired
private LoginCheckInterceptor loginCheckInterceptor;

eOverride
public void addInterceptors(InterceptorRegistry registry) {
//注册拦截器
registry.addInterceptor(loginCheckInterceptor)
.addPathPatterns("/**");
}

九、项目中异常是怎么处理的?具体怎么实现?

异常处理有两种方案:
1、在每一个controller中的方法里面单独try-catch捕获处理 (代码几余,繁琐)
2、全局异常处理 (推荐的方案]
全局异常处理的实现步骤:
1、创建一个类用来专门处理异常,在类上面加上注解: @RestcontrollerAdvice

2、在里面写一个方法用来处理异常: 该方法返回值类型用同一响应结果Result,还需要使用注解@BxceptionHandler
去定义要处理的异常类型。

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

@ExceptionHandler(Exception.class)
public Result ex(Exception e) {
Log.error("全局异常处理",e);
return Result.error("系统繁忙,请稍后重试!!“);
}

SpringBoot使用拦截器(Interceptor)实现用户登录校验 在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。SpringBoot 提供了 Interceptor 拦截器机制,用于请求的预处理和后处理。在 SpringBoot 中定义一个拦截器有两种方法:第一种是实现 HandlerInterceptor 接口,或者继承实现了 HandlerInterceptor 接口的类(例如:HandlerInterceptorAdapter)。 阅读详情

相关推荐

Springboot +JWT实现登录认证,密码加密及Token校验全过程(附源码)

JWT实现登录认证简介环境1. 依赖2. token生成及校验3. 登录4. 编写拦截器进行token校验5. 源码下载 简介 通俗地说,JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。JWT的认证流程如下: 首先,前端通过Web表单将自己的用户名和密码发送到后端的接口,这个过程一般是一个POST请求。建议的方式是通

dingdingdandan 1万+

SpringSecurity5.7.10整合Mybatisplus3.5.3.2自定义用户登录逻辑

springsecurity5.7.10新版本使用,进行配置,实现用户验证,自定义登录页等。

雾林小妖的博客 866

springboot3整合SpringSecurity实现登录校验与权限认证

系统判断身份是否合法 为了避免每次操作都进行认证可将用户信息保存在会话中 session认证 服务端有个session,把 session id给前端,每次请

fanTuanye的博客 2126

SpringBoot2.x 使用 JWT 生成和解析Token - 简单案例

引用参考:https://mp.weixin.qq.com/s/kUiZ1PcBCr1shoOg_-hmvA 简化后: 工具类:JWTService.java 用于生成和解析token package com.mx.project.common.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTCreator.Builder; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt

qq_39130032的博客 1156

springboot3整合SpringSecurity实现登录校验与权限认证(万字超详细讲解)

用户提交登录请求Spring Security 将请求交给 UsernamePasswordAuthenticationFilter 过滤器处理。UsernamePasswordAuthenticationFilter 获取请求中的用户名和密码,并生成一个 AuthenticationToken 对象,将其交给 AuthenticationManager 进行认证。

m0_74823094的博客 1344

[day13 SpringBoot案例3 登录校验]

以上都是自己的理解和部分笔记内容,不一定完全正确,请酌情采纳

CadWasUsed的博客 125

springboot登录校验[JWT]

👏作者简介:我是笑霸final,一名热爱技术的在校学生。

学习笔记,相关教程 分享 2092

基于springboot登录校验

🚀 开篇寄语:还在为Spring Boot项目的登录校验而一筹莫展吗?本篇实战教程将是你破解这一难题的钥匙,从JWT令牌的生成与解析,到过滤器与拦截器的巧妙运用,我们将一步步揭开Spring Boot登录校验的神秘面纱,让你的项目安全性瞬间提升!深入剖析JWT令牌的结构与原理,教你如何轻松生成与解析令牌,实现高效安全的登录认证。过滤器在Spring Boot中的强大作用,如何配置过滤器实现登录校验等特殊功能。拦截器的定义与配置,以及在登录校验中的实战应用,让你的项目更加灵活可控。

qq_64997449的博客 1045

springboot项目中登录校验

​ 1.定义拦截器,实现HandlerInterceptor接口,并重写其所有方法。方案一:在Controller的方法中进行try…catch处理(代码臃肿,不推荐)方案二:全局异常处理器(简单,优雅,推荐)程序开发过程中不可避免的会遇到的异常现象。优点:HTTP协议中支持的技术。优点:存储在服务器,安全。出现异常该如何处理?

qq_58216887的博客 2682

Springboot项目的登录校验实现

通过引入JWT令牌技术,结合过滤器或拦截器,可以有效地实现Web应用程序的登录校验功能。这种方法不仅提高了系统的安全性,还简化了开发流程,适用于各种规模的Web应用开发。在实际开发中,可以根据项目需求选择合适的会话跟踪技术和统一拦截方案。

modaochenxin的博客 1731

SpringBoot---登录校验

● 该浏览器在后续的请求中,每一次请求都会将该令牌携带到服务端,然后接下来在服务端,我们可以通过Filter或Interceptor对所有的请求进行拦截,然后进行校验,获取到请求中携带过来的令牌,进行判断,如果令牌正确合法,则放行,如果令牌不合法,则直接返回错误信息给前端,前端跳转到登录页面。如果查询到的用户不存在,则说明用户输入的用户名和密码错误。中的信息,如果有登录成功的信息,就说明用户登录成功,放行请求,如果发现登录标记中没有登录成功的标记,则给前端返回错误信息,跳转至登录页面。

m0_62486174的博客 1987

SpringBoot登录校验之会话技术、统一拦截技术

jwt官方网站通信双方以json数据格式安全的传输信息jwt就是一个简单的字符串。可以在请求参数或者是请求头当中直接传递。我们是可以根据自身的需求在jwt令牌中存储自定义的数据内容。如:可以直接在jwt令牌中存储用户的相关信息。jwt就是将原始的json数据格式进行了安全的封装JWT的组成: (JWT令牌由三个部分组成,三个部分之间使用英文的点来分割)第一部分:Header(头), 记录令牌类型、签名算法等。例如:{“alg”:“HS256”,“type”:“JWT”}

Orion 3275

SpringBoot--登录校验

概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码快速入门1.定义拦截器,实现HandlerInterceptor接口,并重写其所有方法。2.注册拦截器。

weixin_61500949的博客 1271

SpringBoot+JWT登录校验,以及JWT刷新机制

接上篇博客,继续讲解JWT的使用。 本部分内容主要是SpringBoot项目中具体使用JWT的代码实现,包括了登录创建Token,后续请求验证Token,并且加入了JWT刷新机制等等。 本文大纲: 1.JWT的引入 2.JWT工具类的实现 3.登录申请Token 4.请求验证Token 5.JWT刷新机制的实现 注意:本文注重使大家理解JWT如何在SpringBoot项目中集成和使...

Slience Wind 8281
上一篇: day11 SpringBoot案例2
下一篇: SpringBoot 事务管理+AOP
ximoruo
博客等级 码龄3年 11粉丝 · 11原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值