news 2026/8/29 13:03:39

JWT的Payload部分通常包含哪些内容?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JWT的Payload部分通常包含哪些内容?

JWT的Payload部分,我们可以把它想象成“通行证”里面的主要内容区域。这部分描述了通行证持有者的信息和他们所拥有的权限。

Payload通常包含的内容

  1. 注册声明(Registered Claims):这是一些预定义好的声明,比如iss(发行人)、sub(主题)、aud(受众)、exp(过期时间)等。它们都是关于JWT的标准信息。

  2. 公开声明(Public Claims):这些是JWT的创建者可以自定义的声明,但是需要避免与注册声明冲突。

  3. 私有声明(Private Claims):这些是创建者为了特定目的而自定义的声明,比如用户的ID、角色等。

底层原理
Payload部分其实就是一个JSON对象,它被编码(但不是加密)成Base64Url格式,这样可以确保数据在网络中安全地传输,而不会被特殊字符干扰。重要的是要知道,虽然Payload被编码了,但它不是加密的,所以不应该包含敏感信息。

通俗解释
想象Payload部分就像你学生证里的信息栏,上面有你的姓名、学号、班级等基本信息,这些信息对于识别你的身份很重要,但它们并不是秘密信息,因为别人拿到你的学生证也能看到这些信息。JWT的Payload也是这样,它包含了识别用户或请求所必需的信息,但这些信息不是保密的。

PHP实例代码
下面是一个简单的PHP代码示例,用于创建一个JWT,并查看其Payload部分:

<?php require 'vendor/autoload.php'; // 引入JWT库,假设你已经通过Composer安装了firebase/php-jwt use \Firebase\JWT\JWT; $key = "your_secret_key"; // 用于签名JWT的密钥 $payload = array( "user_id" => 12345, // 自定义的用户ID "username" => "JohnDoe", // 自定义的用户名 "iat" => time(), // JWT的签发时间 "exp" => time() + 3600 // JWT的过期时间,设置为1小时后 ); // 编码并签名JWT $jwt = JWT::encode($payload, $key); echo "JWT: " . $jwt . "\n"; // 仅仅为了演示,我们将Payload部分单独提取出来查看 list($headb64, $payb64, $sigb64) = explode('.', $jwt); $payload_decoded = base64_decode($payb64); $payload_json = json_decode($payload_decoded, true); echo "Payload部分解码后的内容:\n"; print_r($payload_json); ?>

在这个例子中,我们首先定义了一个$payload数组,里面包含了用户ID、用户名、JWT的签发时间和过期时间。然后,我们使用JWT库将这个Payload编码并签名成一个完整的JWT。最后,为了演示,我们将JWT分解,并单独解码了Payload部分来查看其内容。

注意:在实际应用中,你应该始终通过HTTPS来传输JWT,以确保其安全性。而且,Payload中不应该包含任何敏感信息,因为它只是被编码而不是被加密。

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

Replit Free Mode与Routines:零门槛云端开发与自动化任务实践

Replit 这次把 Free Mode 和 Routines 放在一起更新&#xff0c;我第一反应是&#xff1a;它终于把“能跑”和“每次都不用重新跑”两件事打通了。Free Mode 解决的是入门门槛&#xff0c;让不装本地环境的人也能快速启动项目&#xff1b;Routines 解决的是重复劳动&#xff0c…

作者头像 李华
网站建设 2026/8/29 13:00:53

基于BERT的中文情感分类实战:从环境搭建到模型部署全流程解析

简介&#xff1a;自然语言处理&#xff08;NLP&#xff09;是人工智能的核心领域之一&#xff0c;旨在让计算机理解、解释和生成人类语言。其基本原理是通过算法模型从文本数据中学习语言规律。在众多NLP技术中&#xff0c;预训练模型通过在大规模语料上预先学习通用语言表示&a…

作者头像 李华
网站建设 2026/8/29 13:00:07

ai查重率在线检测能用于维普复检吗?降AIGC与查重报告不能互换

ai查重率在线检测能用于维普复检吗&#xff1f;降AIGC与查重报告不能互换 在线页面显示什么能否用于维普复检正确用途通用AI率或疑似度不能直接代替维普修改前免费自查明确的维普AIGC报告需再看学校是否指定该入口验收AI率与疑似段总复制比、标红和来源属于论文查重报告验收重…

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

科学计算代码的评审重点

科学计算代码的评审重点本文围绕“代码评审该盯住哪些细节”整理可复现的检查思路。所有阈值、配置和结果均应在隔离环境中记录输入、版本与资源条件后再解释&#xff1b;下文示例不对应真实组织、用户、流量或成本数据。 1. 用受控样例界定问题 2. 矢量化下的隐性性能陷阱&…

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

从递推公式到高精度计算:蓝桥杯“机器人繁殖”问题深度解析

1. 问题引入&#xff1a;一个看似简单却暗藏玄机的“繁殖”问题 最近在整理蓝桥杯历年真题时&#xff0c;我又翻到了第六届国赛的这道“机器人繁殖”题。说实话&#xff0c;第一次看到题目描述时&#xff0c;我差点以为它是一道简单的数列模拟题&#xff0c;心想&#xff1a;“…

作者头像 李华
网站建设 2026/8/29 12:58:25

Free Claude Code Vertex AI配置详解:ADC认证与项目ID设置

Free Claude Code Vertex AI配置详解&#xff1a;ADC认证与项目ID设置 【免费下载链接】free-claude-code Use Claude Code, Codex, Pi, and OpenCode and more for free (1.3B free tokens) from your terminal, app, IDE, or phone like OpenClaw (voice supported ToS frie…

作者头像 李华