java SpringBoot登录验证token拦截器

用户访问接口验证,如果用户没有登录,则不让他访问除登录外的任何接口。

实现思路:

1.前端登录,后端创建token(通过JWT这个依赖),返给前端

2.前端访问其他接口,传递token,后端判断token存在以或失效

3.失效或不存在,则返回失效提示,前端根据接口返回的失效提示,让其跳转到登录界面

目录

注解的作用说明@Target代表此注解,能@到哪些代码上

返回值-全局异常类定义

程序员使用:方法不加注解,测试

程序员使用:加上,调用通过,注解

拓展:从请求中获取token

注解定义

定义2个注解,1个用于 任何接口都能访问 ,另外一个用于 需要登录才能访问

调用都通过注解

package com.example.etf.story.tools;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PassToken {
    boolean required() default true;
}

登录才能通过

package com.example.etf.story.tools;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface UserLoginToken {
    boolean required() default true;
}

注解的作用说明

@Target代表此注解,能@到哪些代码上

@Target :注解的作用目标

@Target(ElementType.TYPE) ——接口、类、枚举、注解
@Target(ElementType.FIELD) ——字段、枚举的常量
@Target(ElementType.METHOD) ——方法
@Target(ElementType.PARAMETER) ——方法参数
@Target(ElementType.CONSTRUCTOR) ——构造函数
@Target(ElementType.LOCAL_VARIABLE) ——局部变量
@Target(ElementType.ANNOTATION_TYPE) ——注解
@Target(ElementType.PACKAGE) ——包

@Retention :注解

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,我们可以使用拦截器验证token拦截器是一种在请求处理之前或之后拦截请求的机制。我们可以在拦截器中编写代码来验证token,并在需要时拒绝请求。为了实现这个目标,我们需要编写一个自定义的拦截器类,并将其配置到Spring Boot应用程序中。 具体步骤如下: 1. 创建一个自定义的拦截器类,例如TokenInterceptor.java。 2. 在拦截器类中编写代码来验证token。可以使用第三方库,例如JWT,来验证token。 3. 创建一个拦截器配置类,例如InterceptorConfig.java。 4. 在拦截器配置类中注册自定义拦截器,并配置拦截器的拦截路径和排除路径。 5. 在Spring Boot应用程序中启用拦截器配置。 下面是一个简单的示例代码,演示如何在Spring Boot中使用拦截器验证tokenTokenInterceptor.java: ``` public class TokenInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 验证token的代码 // 如果token验证失败,可以使用response对象返回错误信息 return true; } } ``` InterceptorConfig.java: ``` @Configuration public class InterceptorConfig implements WebMvcConfigurer { @Autowired private TokenInterceptor tokenInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(tokenInterceptor) .addPathPatterns("/**") // 拦截所有请求 .excludePathPatterns("/login"); // 排除登录请求 } } ``` 在上面的示例代码中,我们创建了一个名为TokenInterceptor的自定义拦截器类,并实现了HandlerInterceptor接口。在preHandle方法中,我们可以编写代码来验证token。如果token验证失败,可以使用response对象返回错误信息。 然后,我们创建了一个名为InterceptorConfig的拦截器配置类,并实现了WebMvcConfigurer接口。在addInterceptors方法中,我们注册了TokenInterceptor拦截器,并配置了拦截路径和排除路径。在这个例子中,我们拦截了所有请求,但排除了/login请求。 最后,在Spring Boot应用程序中启用拦截器配置。这可以通过在应用程序类上添加@EnableWebMvc注解来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值