Base 64 Decode Token, возможно, истек срок действия JWT php - PullRequest
0 голосов
/ 03 ноября 2019

Я использую код ниже, чтобы base 64 декодировал токен

list($header, $payload, $signature) = explode (".", $token);
$jsondata = base64_decode($payload);    

$data = (array) $jsondata;

$oSession->aSSO["email"] = $data["emails"];
$oSession->aSSO["customerId"] = $data["CustomerId"];

Если я делаю var_dump ($ data);

Я получаю

array(1) { [0]=> string(411) 
"{"nbf":1572801391,
"exp":1572801691,
"iss":"ISS",
"aud":"AUD","nonce":"NONCE",
"iat":IAT,
"sid":"SOD",
"sub":"SUB",
"auth_time":1572800662,
"idp":"IDP",
"CustomerId":"CUSTOMERID",
"emails":"EMAIL",
"amr":["pwd"]}" 
}

Как мне получить доступ к электронным письмам и CustomerId?

Они оба возвращаются пустыми, хотя из var_dump видно, что они присутствуют

Я пробовал данные [0] -> CustomerIdбез радости либо

1 Ответ

2 голосов
/ 03 ноября 2019

Что вы должны сделать - это JSON-декодирование строки без приведения ее к массиву.

list($header, $payload, $signature) = explode (".", $token);
$jsondata = base64_decode($payload); 
$data = json_decode($jsondata, true);

$oSession->aSSO["email"] = $data["emails"];
$oSession->aSSO["customerId"] = $data["CustomerId"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...