Java:java-jwt实现JsonWebToken

简介: Java:java-jwt实现JsonWebToken

文档:https://github.com/auth0/java-jwt

依赖

 <!-- JWT依赖 -->
 <dependency>
     <groupId>com.auth0</groupId>
     <artifactId>java-jwt</artifactId>
     <version>3.4.0</version>
 </dependency>

代码示例

package com.mouday;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
import org.junit.jupiter.api.Test;
import java.util.Date;
import java.util.Map;
public class JwtDemo {
    //过期时间  120秒后
    private long expire = 120;
    // 秘钥
    private String secret = "123456";
    @Test
    public void createJwt() {
        Date now = new Date();
        Date expireDate = new Date(now.getTime() + expire * 1000);
        Algorithm algorithm = Algorithm.HMAC256(secret);
        String token = JWT.create()
                .withClaim("id", 12) // 增加Payload数据
                .withExpiresAt(expireDate)  // 过期时间
                .sign(algorithm);
        System.out.println(token);
    }
    @Test
    public void decodeJwt() {
        String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTIsImV4cCI6MTYwNzg3MjM5NH0.J5ih6dffc7z3D2ckYDCe61JuhsQJLXjQuDIUGMip94s";
        DecodedJWT jwt = JWT.decode(token);
        System.out.println(jwt.getToken());
        System.out.println(jwt.getHeader());
        System.out.println(jwt.getPayload());
        System.out.println(jwt.getSignature());
        // 获取Payload中的数据
        Map<String, Claim> claims = jwt.getClaims();    //Key is the Claim name
        Integer id = claims.get("id").asInt();
        System.out.println(id);
    }
    @Test
    public void verifyJwt() {
        String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTIsImV4cCI6MTYwNzg3MjM5NH0.J5ih6dffc7z3D2ckYDCe61JuhsQJLXjQuDIUGMip94s";
        Algorithm algorithm = Algorithm.HMAC256(secret);
        JWTVerifier verifier = JWT.require(algorithm).build(); //Reusable verifier instance
        try {
            verifier.verify(token);
            System.out.println("验证成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


相关文章
|
4月前
|
JSON Java Maven
关于使用Java-JWT的笔记
这篇文章介绍了使用Java-JWT库来生成和验证JSON Web Tokens (JWT) 的方法。文中解释了JWT的组成,包括头部、载荷和签名,并提供了如何使用java-jwt库生成和验证token的示例代码。此外,还提供了Maven依赖和一些关于token的标准声明和自定义声明的解释。
关于使用Java-JWT的笔记
|
6月前
|
存储 算法 安全
如何在Java中实现加密解密
如何在Java中实现加密解密
|
JSON 安全 Java
什么是JWT及在JAVA中如何使用?
在不使用JWT的情况下,我们一般选择的是cookie和session来进行服务鉴权(判断是否登录,是否具有某种权限),但是这是针对于只有一个客户端的情况下,现在客户端从pc端增长到了app端,现在就是多端访问了。
什么是JWT及在JAVA中如何使用?
Java:java-jwt实现JsonWebToken
Java:java-jwt实现JsonWebToken
258 0
|
Java Apache 数据安全/隐私保护
java经常使用16种工具类
一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块toString:转换IO流、 Uri、 byte[]为Stringcopy:IO流数据复制,从输入流写到输出流中,最大支持2GBtoByteArray:从输入流、URI获取byte[]write:把字节.
4474 0
|
Oracle Java 关系型数据库
Java-ConnectDB工具类
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 功能描述:连接数据库-mysql/oracle */ public class C...
1198 0
Java-UploadHelper工具类
/** * 上传文件类 */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.
861 0
|
移动开发 数据安全/隐私保护
Java-FtpUtil工具类
package cn.ipanel.app.newspapers.util; import java.io.BufferedReader; import java.io.DataInputStream; import java.
1561 0
|
Java 关系型数据库 数据库连接
Java-DatabaseConnectionPool工具类
package org.zxjava.test; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.
800 0
Java-ZipUtil工具类
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.
4667 0