入门JWT

本文介绍了JWT的初步使用,包括创建简单示例、结合拦截器实现认证,并详细讲解了jjwt库的运用,包括JwtUtils和Interceptor的配置以及JJwtUtils在测试类中的应用。
摘要由CSDN通过智能技术生成

一、简单demo

		<dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.10.3</version>
        </dependency>
      @Test
    public void test1() {
   
        Map<String, Object> map = new HashMap<>();
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.SECOND, 60);
        String token = JWT.create()
                //设置头
                .withHeader(map)
                //设置内容
                .withClaim("userId", 12)
                .withClaim("userName", "xiaowang")
                //过期时间
                .withExpiresAt(instance.getTime())
                //签名算法
                .sign(Algorithm.HMAC256("sadsa555"));
        System.out.println(token);
    }

    @Test
    public void test2() {
   
        //创建验证对象
        JWTVerifier verifier = JWT.require(Algorithm.HMAC256("sadsa555")).build();
        DecodedJWT verify = verifier.verify("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InhpYW93YW5nIiwiZXhwIjoxNjA1MjM2MDk3LCJ1c2VySWQiOjEyfQ.hY13p-SDWYQXMvalMBBiwd57OowR8FFNN0K13xLRzZw");
        System.out.println(verify.getClaim("userId").asInt());
//        System.out.println(verify.getClaims().get("userId").asString());
        System.out.println(verify.getClaims().get("userName").asString());
    }

在这里插入图片描述

二、拦截器+jwt

JwtUtils

package com.springboot.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;

import java.util.Calendar;
import java.util.Map;

public class JwtUtils {
   

    private static final String SING = "@WWQss232";

    /**
     * 生成token
     */
    public static String getToken(Map<String,String> map){
   
        Calendar instance = Calendar.getInstance();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值