JWT-Token升级方案

这篇具有很好参考价值的文章主要介绍了JWT-Token升级方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 介绍

JWT-Token升级方案,誉天程序员,java基础,开发语言,开发,编程
JWT是JSON Web Token的缩写,即JSON Web令牌,是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上。JWT最重要的作用就是对 token信息的防伪作用。

2. 官网地址

https://jwt.io/
JWT令牌的组成:
 一个JWT由三个部分组成:JWT头、有效载荷、签名哈希
 最后由这三者组合进行base64url编码得到JWT
典型的,一个JWT看起来如下图:该对象为一个很长的字符串,字符之间通过"."分隔符分为三个子串。

JWT-Token升级方案,誉天程序员,java基础,开发语言,开发,编程
JWT-Token升级方案,誉天程序员,java基础,开发语言,开发,编程

3. 特点

 JWT 默认是不加密,但也是可以加密的。生成原始 Token 以后,可以用密钥再加密一次。
 JWT 不加密的情况下,不能将秘密数据写入 JWT。
 JWT 不仅可以用于认证,也可以用于交换信息。有效使用 JWT,可以降低服务器查询数据库的次数。
 JWT 的最大缺点是,由于服务器不保存 session 状态,因此无法在使用过程中废止某个 token,或者更改 token 的权限。也就是说,一旦 JWT 签发了,在到期之前就会始终有效,除非服务器部署额外的逻辑。
 JWT 本身包含了认证信息,一旦泄露,任何人都可以获得该令牌的所有权限。为了减少盗用,JWT 的有效期应该设置得比较短。对于一些比较重要的权限,使用时应该再次对用户进行认证。
 为了减少盗用,JWT 不应该使用 HTTP 协议明码传输,要使用 HTTPS 协议传输。

4. 生成token的方案比较

JWT-Token升级方案,誉天程序员,java基础,开发语言,开发,编程

5. pom.xml

<!-- 集成jwt,升级token解决方案 -->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>4.0.0</version>
        </dependency>

6. JwtHelper.java

package com.bank.admin.util;

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

import java.util.Date;

/**
 * @version v1.0 创建时间:19:40
 * @author: 作者:陈子枢
 * @web CSDN:https://blog.csdn.net/nutony
 * @description 描述:auth0.jwt 工具类
 */
public class JwtHelper {
    //过期时间,通常30分钟~1小时
    private static long EXPIRE_DATE = 1*60*60*1000;
    private static String TOKEN_SECRET = "chenchen";    //秘钥

    //创建token,含有userId和userName信息
    public static String createToken(String userId, String userName){
        Date expiredTime = new Date(System.currentTimeMillis()+EXPIRE_DATE);
        Algorithm alg = Algorithm.HMAC256(TOKEN_SECRET);
        try{
            String token = JWT.create()
                .withClaim("userId", userId)
                .withClaim("userName", userName)
                .withExpiresAt(expiredTime)
                .sign(alg);
            return token;
        }catch (Exception e){
            return null;
        }
    }

    //获取token中隐藏的信息
    public static String get(String token, String who){
        DecodedJWT jwt = JWT.decode(token);
        return jwt.getClaim(who).asString();
    }

    //校验token是否过期
    public static boolean verify(String token){
        DecodedJWT jwt = JWT.decode(token);
        if( jwt.getExpiresAt().before(new Date())) {
            //System.out.println("token is expired");
            return false;
        }
        return true;
    }

    public static void main(String[] args) {
        String t = JwtHelper.createToken("1", "130");
        System.out.println(t);
        String k = JwtHelper.get(t, "userName");
        System.out.println(k);

        //刚生成立马测试,返回true
        //boolean b = JwtHelper.verify(t);

        //超过时间测试,返回false
        boolean b = JwtHelper.verify("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6IjEzMCIsImV4cCI6MTY5NDA4OTM4OCwidXNlcklkIjoiMSJ9.N30GNN2LuEPx6KgqStkvm2MXiC--Y3UAAyISG26NcjA");
        System.out.println(b);

    }
}

7. token

JWT-Token升级方案,誉天程序员,java基础,开发语言,开发,编程文章来源地址https://www.toymoban.com/news/detail-705218.html

到了这里,关于JWT-Token升级方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Android 系统级APP 升级方案 OTA全流程

    支持原创,请关注专栏: 高质量文章导航 一.Android ota固件编译 OTA 介绍 OTA ( over the air )升级是 Android 系统提供的标准软件升级方式。它功能强大,提供了 完全升级(完整包)、增量升级模式(差异包),可以通过本地升级,也可以通过网络升级 1.完整包 完整包所包含内容

    2024年02月02日
    浏览(85)
  • 免费升级到 iOS 17 Developer Beta:官方Apple Store升级方案与爱思助手方法比较

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(45)
  • DolphinScheduler2.0版本升级3.0版本方案

    因项目需要使用数据质量模块功能,可以为数仓提供良好的数据质量监控功能。故要对已有2.0版本升级到3.0版本以上,此次选择测试了3.0.1 和 3.1.1 两个版本,对进行同数据等任务调度暂停等操作测试,最后选择3.0.1 版本 原因: 1. 3.1.1 在测试sql任务时 ,同时启动上百sql 任务

    2024年02月09日
    浏览(41)
  • 面向城乡公交的嵌入式系统远程升级设计方案

    针对城乡公交站牌显示终端现场升级与维护困难的问题,提出了一种基于应用程序(IAP)技术的嵌入式系统远程升级设计方案。 通过IAP技术配合改良过的远程升级程序代替传统的现场烧写调试,节约了奔赴现场调试的时间和成本。 针对远程升级过程中被恶意攻击、固件文件

    2024年02月14日
    浏览(41)
  • springboot 数据库版本升级管理常用解决方案

    目录 一、前言 1.1 单独执行初始化sql 1.2 程序自动执行 二、数据库版本升级管理问题

    2024年02月13日
    浏览(55)
  • 库存预占架构升级方案设计-交易库存中心

    伴随物流行业的迅猛发展,一体化供应链模式的落地,对系统吞吐、系统稳定发出巨大挑战,库存作为供应链的重中之重表现更为明显。近三年数据可以看出: 接入商家同比增长37.64%、货品种类同比增长53.66% 货品数量同比增长46.43%、仓库数量同比增长18.87% 通过分析过往大促

    2024年02月11日
    浏览(44)
  • 阿里云无影升级2.0 云电脑解决方案时代到来

    10月31日,杭州云栖大会上,阿里云宣布无影全新升级2.0:从云电脑到云上解决方案,帮助中小企业更便捷地构建云上办公,并开放无影产品及解决方案能力,为生态合作伙伴提供企业云平台,帮助其打造定制化的云电脑产品及解决方案。 2020年阿里云发布首台云电脑“无影”

    2024年02月06日
    浏览(45)
  • 【干货】Apache DolphinScheduler2.0升级3.0版本方案

    因项目需要使用数据质量模块功能,可以为数仓提供良好的数据质量监控功能。故要对已有2.0版本升级到3.0版本以上,此次选择测试了3.0.1 和 3.1.1 两个版本,对进行同数据等任务调度暂停等操作测试,最后选择3.0.1 版本 原因: 1. 3.1.1 在测试sql任务时 ,同时启动上百sql 任务

    2024年03月26日
    浏览(49)
  • 老旧Mac不能升级macOS Ventura 13解决方案

    ITMS-90725: SDK Version Issue - This app was built with the iOS 15.5 SDK. All iOS apps submitted to the App Store must be built with the iOS 15 SDK or later, included in Xcode 13 or later. 打包上传的时候提示这个类似错误。这个错误很好解决,只需要更新xcode就可以了. 但不幸的是,更新最新的xcode的需要更新最新的系

    2024年02月13日
    浏览(62)
  • 第二章 FPGA OTA升级方案的分析及简单用例测试

    FPGA程序运行的方式有两种方式: (1)加载到本地RAM(掉电不保存) (2)将程序固化到FLASH中(掉电保存),FPGA上电后自动从地址0加载固件 Xilinx 7系列有Multiboot设计,这种设计允许在应用现场支持FPGA在线加载多种不同应用,并可支持回退。但是需要说明的一点,Virtex®-7

    2024年02月08日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包