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

时间:2015-06-30 18:48:43

标签: php json jwt

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

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

我将它存储在变量$ data中,并且不知道如何访问'iat'值或'user_id'。任何人都可以帮助我吗?

我试过

$issuanceDate = $data['iat'];

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

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

1 个答案:

答案 0 :(得分:4)

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

从php-jwt :: decode返回的已解码标记'$ data'是一个对象,我只是使用

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

并使用

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

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

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