Spring Cloud Zuul网关集成JWT身份验证

本文介绍了如何在Spring Cloud微服务项目中,利用Zuul网关实现JWT(Json Web Token)身份验证。首先概述了jwt认证的无状态特性,适合分布式环境。接着详细阐述了四个步骤:引入相关依赖、启动类注解、生成Token并存储到Redis、以及设置验证授权过滤器。最后提到了接口请求时需携带token的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

使用Spring Cloud 微服务开发项目,进行身份认证,将身份认证放在网关中做,实现统一的身份认证。使用JWT(Json Web Token)作为身份认证, jwt身份认证方式主要的特点是无状态,把信息放在客户端,服务器端不需要保存session,适合在分布式环境下使用。

二、使用步骤

1.引入库

pom.xml引入依赖:

 		<dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.10.0</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.0.1</version>
        </dependency>
         <dependency>
            <groupId>com.netflix.zuul</groupId>
            <artifactId>zuul-core</artifactId>
        </dependency>

2.启动类注解

@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
@EnableFeignClients
@EnableDiscoveryClient  //开启服务注册功能
public class AppZuulApplication {
   
   
    public static void main(String[] args) {
   
   
        SpringApplication.run(AppZuulApplication.class, args);
    }
}

3.生成Token

用户登录时,服务器根据用户唯一标识生成token,将其存在redis缓存中,并设置过期时间;


import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import java.util.Date;

public class JWTUtil {
   
   
    private static final String USER_INFO_KEY = "phone";
    
    @Value("${secretKey:!@#$%^&*}")
    private String secretKey;

    @Value("${issuser:mark}")
    private String issuser;

    @Value("${tokenExpireTime:43200}")//12小时
    private int tokenExpireTime;
    
    
    /**
     * 生成Token
     *
     * @param issuser         签发者
     * @param phone           用户手机号
     * @param secretKey       签名算法以及密匙
     * @param tokenExpireTime 过期时间
     * @return
     */
    public static String generateToken
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值