Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

json

php

jwt

I have a web token which decodes to the following:

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

I have this stored in a variable $data, and have no idea how to access the 'iat' value, or the 'user_id'. Can anyone help me out?

I've tried

$issuanceDate = $data['iat'];

But that doesn't seem to be working. I need the user id too, but that is nested in $data.data.

Any help would be much appreciated, thanks.

like image 908
Highway62 Avatar asked Jun 30 '15 18:06

Highway62


1 Answers

I have solved my problem. My solution:

The decoded token, '$data', returned from php-jwt::decode was an object, I simply cast it to an array using

$unencodedData = (array) $data;

and accessed the 'iat' field using

$issuedAt = $unencodedData['iat'];

Also, the object contained a nested object $data->data. To access this I cast the outer '$data' object to an array as above, and accessed the nested 'data' object like this:

$user_id = $unencodedData['data']->user_id;
like image 192
Highway62 Avatar answered Sep 28 '22 13:09

Highway62