十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

JWT中的“sub”声明代表什么?

JWT中的“sub”声明代表什么? JWTJSON Web Token是一个开放标准RFC 7519它定义了一种紧凑的、自包含的方式用于作为JSON对象在各方之间安全地传输信息。这些信息可以用于验证、授权、信息交换等。JWT主要由三部分组成Header头部Payload有效载荷和Signature签名。在JWT的Payload有效载荷部分可以包含一些预定义的声明Claims“sub”就是其中一个。“sub”代表Subject主题通常用来表示JWT的接收者或者JWT所代表的用户。比如在一个用户认证的上下文中“sub”可能包含用户的唯一标识符如用户ID。通俗解释你可以把JWT想象成一封加密的信。这封信有三个主要部分信封Header信纸Payload和信上的印章Signature。在信纸Payload上你可以写一些信息比如这封信是给谁的“sub”就是这个人的名字或者标识。当你把这封信交给别人时他们可以查看信纸上的内容知道这封信是给你的并且因为信上有印章Signature所以他们可以确认这封信是真实的没有被篡改过。PHP实例代码下面是一个简单的PHP示例展示如何生成一个包含“sub”声明的JWT?php require vendor/autoload.php; // 引入JWT库 use \Firebase\JWT\JWT; $key your_secret_key; // 用于签名的密钥 $payload array( sub user123, // 设置“sub”声明为用户ID exp time() 3600 // 设置JWT的过期时间为1小时后 ); $jwt JWT::encode($payload, $key); // 生成JWT echo JWT: . $jwt . \n; // 输出JWT ?在这个示例中我们首先引入了JWT库然后设置了一个用于签名的密钥。接着我们创建了一个包含“sub”和“exp”声明的有效载荷Payload。“sub”声明被设置为“user123”代表这个JWT是给用户ID为“user123”的用户。最后我们使用JWT::encode方法生成了JWT并将其输出。注意为了运行这个示例你需要先安装JWT库。你可以使用Composer来安装它composer require firebase/php-jwt。这个示例展示了如何生成一个包含“sub”声明的JWT。在实际应用中你可能还需要处理更多的逻辑比如验证JWT的签名、解析JWT的内容等。
返回列表