news 2026/9/8 4:34:18

JWT的“exp”声明有什么作用?底层原理是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JWT的“exp”声明有什么作用?底层原理是什么?

JWT的“exp”声明用于指定JWT的过期时间。这个声明告诉接收者,在什么时间之后这个JWT就不应该再被接受了,因为它已经“过期”了。这是一个重要的安全特性,因为它可以防止旧的或者被盗用的JWT被无限期地使用。

想象一下你去电影院看电影,你的电影票上有一个时间,告诉你这个电影票在什么时间之前可以使用。过了这个时间,电影票就无效了,你不能再用它来进场看电影了。JWT的“exp”声明就像是这个电影票上的时间,它告诉计算机系统这个JWT在什么时间之后就不能再被使用了。

底层原理

“exp”声明是一个Unix时间戳,表示JWT的过期时间。Unix时间戳是从1970年1月1日(UTC)开始计算的秒数。当接收者收到一个JWT时,它会检查“exp”声明的值。如果当前时间超过了“exp”声明的值,那么接收者就会拒绝这个JWT,因为它已经过期了。

PHP实例代码

下面是一个使用PHP的JWT库来生成一个包含“exp”声明的JWT的示例代码:

<?php require 'vendor/autoload.php'; // 引入JWT库,确保已经通过Composer安装了firebase/php-jwt库 use \Firebase\JWT\JWT; $key = 'your_secret_key'; // 密钥,用于签名和验证JWT // 生成JWT的Payload部分,并设置exp声明 $payload = array( 'sub' => 'user123', // 用户ID或其他标识 'exp' => time() + 3600 // 设置JWT的过期时间为1小时后 ); // 使用密钥对Payload进行签名,生成JWT $jwt = JWT::encode($payload, $key); echo "生成的JWT: " . $jwt . "\n"; // 模拟验证过程,检查JWT是否过期 $decoded = JWT::decode($jwt, $key, array('HS256')); // 这里会抛出异常,如果JWT已过期 echo "JWT验证成功,Payload数据:\n"; print_r($decoded); ?>

在这个示例中,我们首先创建了一个包含“sub”和“exp”声明的Payload。其中,“exp”被设置为当前时间加上3600秒(1小时),意味着这个JWT将在1小时后过期。然后,我们使用JWT库对这个Payload进行签名,生成了一个JWT。

最后,我们模拟了JWT的验证过程。如果JWT没有过期,JWT::decode方法会成功解码JWT并返回Payload数据。如果JWT已经过期,这个方法会抛出一个异常。

请注意,为了运行此代码,你需要先安装JWT库,你可以通过Composer来安装:composer require firebase/php-jwt

在实际应用中,你应该在try-catch块中调用JWT::decode方法来处理可能的异常,比如JWT过期、签名无效等情况。这样你可以优雅地处理这些错误情况,而不是让整个应用崩溃。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 4:32:51

2026年GPU云服务商选型指南:五大Neocloud平台对比分析

过去两年&#xff0c;大模型训练、微调和推理的需求快速增长&#xff0c;GPU 云服务市场出现了大量新玩家。和传统的 AWS、Azure、GCP 不同&#xff0c;这些服务商从第一天起就把 NVIDIA GPU 集群作为核心产品&#xff0c;围绕 InfiniBand 网络、Kubernetes 调度、按秒计费和大…

作者头像 李华
网站建设 2026/9/8 4:33:42

ComfyUI 入门教程:三步装好本地环境,接出第一条出图工作流

ComfyUI 入门教程&#xff1a;三步装好本地环境&#xff0c;接出第一条出图工作流 【免费下载链接】ComfyUI The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI…

作者头像 李华
网站建设 2026/8/29 23:59:34

数学建模实战:Python实现熵值法进行客观权重分配与综合评价

1. 项目缘起&#xff1a;为什么在数学建模中&#xff0c;熵值法依然是我的首选&#xff1f;在数学建模的赛场上&#xff0c;面对一堆指标数据&#xff0c;如何科学地给它们分配权重&#xff0c;是决定模型成败的关键一步。很多新手一上来就想到层次分析法&#xff08;AHP&#…

作者头像 李华
网站建设 2026/9/8 4:32:51

数学建模论文写作全攻略:从标准结构到高阶技巧

1. 论文写作的核心价值与常见误区 很多同学在数学建模竞赛中投入了大量精力去研究算法、调试代码&#xff0c;却往往在最后一步——论文写作上栽了跟头。我见过太多队伍&#xff0c;模型建得不错&#xff0c;结果也还行&#xff0c;但最后拿到的奖项却远低于预期&#xff0c;问…

作者头像 李华
网站建设 2026/8/31 1:45:28

RTX 4090+4K+光追:《刺客信条:黑旗 记忆重置》极致画质设置全解析

RTX 4090显卡搭配高刷4K显示器&#xff0c;有哪些游戏能充分发挥性能&#xff1f;《刺客信条&#xff1a;黑旗 记忆重置》值得体验核心信息摘要• 《刺客信条&#xff1a;黑旗 记忆重置》是当前PC端光追画质最极致的单机大作之一&#xff1a;基于最新Anvil引擎从零构建&#xf…

作者头像 李华
网站建设 2026/8/31 10:04:41

OctoLong:Mid-Training 如何增强跨仓库代码长上下文建模

做代码生成、仓库级问答、长链路 Bug 排查时&#xff0c;一个非常典型的瓶颈是&#xff1a;模型在单个文件内的局部语义理解已经不错&#xff0c;一旦需要跨文件、跨模块甚至跨仓库组合上下文&#xff0c;输出质量就明显下滑。这个问题的根源&#xff0c;往往不在模型结构本身&…

作者头像 李华