php - 可能已过期 JWT php 的 Base 64 解码令牌
问题描述
我正在使用下面的代码对令牌进行 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 中看到它们存在,但它们都返回空白
我也没有高兴地尝试过 data[0]->CustomerId
解决方案
您应该能够做的是 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"];
推荐阅读
- python - pylint warnings regarding global variables and invalid names
- reactjs - Hello Have big problem with my app, Heroku deploy H10 eror
- visual-studio-code - New VSCode extension can't find vscode
- android-studio - which cmake will Android plugin use?
- dart - WillPopScope Widget 是 Stateful Widget 还是 Stateless Widget?
- c++ - C++17 的编译错误
在 MinGW 上 - jquery - 如何使用表单输入在 Foundation 模式弹出窗口上显示 BindingResult 错误
- maven - 运行 jar 时出现 ClassNotFoundException 但运行类时没有问题
- hadoop - Hive:查找前 20% 的记录
- postgresql - Postgres 连接在已部署的 Firebase 功能中获得 ETIMEDOUT(在本地工作)