java 验证网关合法性_gateway和jwt网关认证实现过程解析

这篇文章主要介绍了gateway和jwt网关认证实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

思路: 全局过滤器对所有的请求拦截(生成token有效期30分钟,放入redis设置有效期3天。3天之类可以通过刷新接口自动刷新,超过3天需要重新登录。)

前端在调用接口之前先判断token是否过期(3o分钟),过期则先调刷新接口,换取新token,

1引入相关jar

org.springframework.cloud

spring-cloud-starter-gateway

io.jsonwebtoken

jjwt

0.9.0

2编写Jwt工具类(生成token + 解析token)

package spring.cloud.gateway.common;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

import io.jsonwebtoken.ExpiredJwtException;

import org.springframework.util.StringUtils;

import io.jsonwebtoken.Jwts;

import io.jsonwebtoken.SignatureAlgorithm;

public class JwtUtil {

public static final String SECRET = "qazwsx123444$#%#()*&& asdaswwi1235 ?;!@#kmmmpom in***xx**&";

public static final String TOKEN_PREFIX = "Bearer";

public static final String LOGIN_URL = "/token/userId/pwd";

public static final String LOGOUT_URL = "/token/userId";

public static final String HEADER_AUTH = "authorization";

public static final String HEADER_USERID = "userid";

//token超时时间

public static final int TOKEN_EXPIRATION_MINUTE = 30;

//token的redis超时时间

public static final int TOKEN_REDIS_EXPIRATION_DAY = 7;

public static String generateToken(String userId) {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.MINUTE, TOKEN_EXPIRATION_MINUTE); //得到前一天

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值