如何使用 PHP 提取已解码的 JWT Web 令牌的有效负载数据

How do I extract the payload data of a decoded JWT web token using PHP

我有一个网络令牌,可以解码为以下内容:

{
 typ: "JWT",
 alg: "HS256"
}.
{
 iat: 1435688301,
 iss: "localhost",
 data: {
  user_id: 2
 }
}.
[signature]

我将其存储在变量 $data 中,但不知道如何访问 'iat' 值或 'user_id'。谁能帮帮我?

我试过了

$issuanceDate = $data['iat'];

但这似乎不起作用。我也需要用户 ID,但它嵌套在 $data.data.

非常感谢任何帮助,谢谢。

我的问题已经解决了。我的解决方案:

从 php-jwt::decode 返回的解码令牌“$data”是一个对象,我只是使用

将其转换为数组
$unencodedData = (array) $data;

并使用

访问了'iat'字段
$issuedAt = $unencodedData['iat'];

此外,该对象包含一个嵌套对象 $data->data。要访问它,我将外部“$data”对象转换为上面的数组,并访问嵌套的 'data' 对象,如下所示:

$user_id = $unencodedData['data']->user_id;