java SpringBoot 登录验证 token 拦截器

本文介绍了如何在Java SpringBoot应用中实现登录验证,通过JWT生成和验证token,并使用拦截器拦截未授权的接口访问。详细讲解了注解定义、拦截器配置以及全局异常处理。
摘要由CSDN通过智能技术生成

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

实现思路:

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 :注解的保留位置

RetentionPolicy.SOURCE :这种类型的 Annotations 只在源代码级别保留,编译时就会被忽略,在 class 字节码文件中不包含。

RetentionPolicy.CLASS :这种类型的 Annotations 编译时被保留,默认的保留策略,在 class 文件中存在,但 JVM 将会忽略,运行时无法获得。

@Document :说明该注解将被包含在 javadoc 中

@Inherited :说明子类可以继承父类中的该注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值