用户访问接口验证,如果用户没有登录,则不让他访问除登录外的任何接口。
实现思路:
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
:注解