Java实现JSON Web Token(JWT)的生成、解码和验证

这篇具有很好参考价值的文章主要介绍了Java实现JSON Web Token(JWT)的生成、解码和验证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JSON Web Token(JWT)是一种用于安全传输信息的开放标准。它可以用于认证和授权用户,以及在不同系统之间传输数据。在本文中,我们将介绍如何在 Java 中使用 jjwt 库来生成、解码和验证 JWT

引入 jjwt 库

首先,你需要在你的项目中引入 jjwt 库。如果你使用 Maven,可以在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

生成 JWT

以下是使用 jjwt 验证 JWT 的示例代码:

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;

public class JwtGenerator {
    public static void main(String[] args) {
        // 设置过期时间为 1 天
        long expirationTime = System.currentTimeMillis() + 86400000;
        String token = Jwts.builder()
                .setSubject("user123") // 设置 subject
                .setExpiration(new Date(expirationTime)) // 设置过期时间
                .signWith(SignatureAlgorithm.HS256, "secret") // 设置签名
                .compact();
        System.out.println(token);
    }
}

验证 JWT

以下是使用 jjwt 验证 JWT 的示例代码:

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureException;

public class JwtVerifier {
    public static void main(String[] args) {
        String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMTIzIiwiZXhwIjoxNjIwNzg3NzE3fQ.hXcJHdYvy3l0gI6HgNv6v-Tx_lL4FOWp65eGJ0YJtDk";
        try {
            Claims claims = Jwts.parser()
                    .setSigningKey("secret")
                    .parseClaimsJws(token)
                    .getBody();
            System.out.println("Subject: " + claims.getSubject());
        } catch (SignatureException e) {
            System.out.println("Invalid token.");
        }
    }
}

在这个例子中,我们使用 parser() 方法解析 JWT,并使用 setSigningKey() 方法设置签名密钥。如果 JWT 验证成功,我们可以从 Claims 对象中获取 subject 值。

希望这篇文章能帮助你开始使用 jjwt 来生成、解码和验证 JWT。文章来源地址https://www.toymoban.com/news/detail-686703.html

到了这里,关于Java实现JSON Web Token(JWT)的生成、解码和验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Json Web Token(JWT)

    JSON Web Token (JWT) 是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 对象的形式安全传输信息。此信息可以验证和信任,因为它是数字签名的。JWT 可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。 1.Authorization(授权):

    2024年02月19日
    浏览(31)
  • 分布式环境集成JWT(Java Web Token)

    Token的引入:客户端向服务端请求数据时一般都会加入验证信息,比如客户端在请求的信息中携带用户名、密码,服务端会校验用户名和密码是否正确,校验通过响应该客户端请求。但是每次都携带用户名和密码无疑有些繁琐,而且也不安全,在这种背景下,Token便应运而生。

    2024年02月11日
    浏览(34)
  • JWT(Json Web Token)简介

    一般的Token认证流程是这样的:         1. 用户输入用户名和密码,发送给服务器。          2. 服务器验证用户名和密码,正确的话就返回一个签名过的token(token 可以认为就是个长长的字符串),浏览器客户端拿到这个token。          3. 后续每次请求中,浏览器

    2023年04月08日
    浏览(21)
  • 什么是JWT(JSON Web Token)?

    JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用间传递信息的安全传输方式。它通过数字签名来验证信息的合法性,并且具有自包含性,即它包含了足够的信息以供验证和识别。 JWT通常由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。 1. 头部(

    2024年02月12日
    浏览(33)
  • JWT(JSON Web Token )详解及实例

    目录 一、什么是 JWT ? 二、什么时候使用 JWT ? 三、JWT 格式 1、Header 2、Payload 3、Signature 4、 JWT实现: 官网 JSON Web Tokens - jwt.io RFC 7519文档 RFC 7519: JSON Web Token (JWT) JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全

    2024年02月06日
    浏览(34)
  • JWT(Json Web Token)的原理、渗透与防御

    (关于JWT kid安全部分后期整理完毕再进行更新~2023.05.16) JWT全称为Json web token,是为了在网络应用环境间传递声明而执行的一中基于JSON的开放标准。常用于分布式站点的单点登录。 JWT的声明一般被用在客户端与服务端之间传递身份认证信息,便于向服务端请求资源。 (我理

    2024年02月05日
    浏览(27)
  • 解锁互联网安全的新钥匙:JWT(JSON Web Token)

    目录 前言 一、JWT简介 1. 什么是JWT? ​编辑 2. JWT的工作原理 3.JWT如何工作的 4. JWT的优势 5. 在实际应用中使用JWT 6.传统Session和JWT认证的区别 6.1.session认证方式 6.2.JWT认证方式 7.基于Token的身份认证 与 基于服务器的身份认证  二、JWT的结构 (1) Header (2) Payload (3) Signature  三、

    2024年02月08日
    浏览(31)
  • SpringBoot集成JWT token实现权限验证

    先在pom中引入 JWT依赖 然后引入一个生成的 token 的工具类         然后具体实现上有两种方式,一个是使用自定义注解配合拦截器,另外一个是使用拦截器。 方法一:         先自定义个注解,然后再定义一个自定义拦截器 JwtInterceptor 类,同时让 JwtInterceptor 类继承

    2024年02月10日
    浏览(33)
  • Springboot实现websocket(连接前jwt验证token)

    用户连接服务器weksocket前,需经过jwt的token验证(token中包含账号信息),验证合法后,才可以于服务器正常交互。 一、配置依赖(pom.xml) 二、因为springboot的websocket连接时不会显示header信息,也就无法拿到cookie中的token信息,需要在连接前处理,新建一个WebSocketConfig.class,在

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包