Я пытаюсь создать JWT на PHP, который, кажется, работает, но токен недействителен с приложением, для которого я его использую (метабаза).
Вот мой код
use \Firebase\JWT\JWT;
$key = "acb...123";
$token = array (
'resource' =>
array (
'dashboard' => 5333
),
'params' => array (),
);
$jwt = JWT::encode($token, $key);
Это дает то, что выглядит как действительный результат ...
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjUzMzN9LCJwYXJhbXMiOltdfQ.xt2AuqbRZeJOQZ17xphCwMsikSaZDvMpG5ecydN6X08
Но это недопустимый токен для метабазы
Если я использую онлайн-генератор JWT (https://www.jsonwebtoken.io/) Я получаю токен (немного дольше), который работает, но я не вижу, что в этом особенного.
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNvdXJjZSI6eyJkYXNoYm9hcmQiOjUzMzN9LCJwYXJhbXMiOnt9LCJqdGkiOiI2MzczMDg4YS1iZmIwLTRmMDQtYWRhNi00ZmY2MzI4ZjJkNDAiLCJpYXQiOjE1NjAzMzQ2NDQsImV4cCI6MTU2MDMzODI0NH0.iMIvyAmemFyMq8QF00xYLdVoSpSnb_PjcrIsRVIE74c
РЕДАКТИРОВАТЬ:
ОК, поэтому декодировалвывод из онлайн-генератора, я получаю это ...
stdClass Object
(
[resource] => stdClass Object
(
[dashboard] => 5
)
[params] => stdClass Object
(
)
[jti] => c1531882-1ca1-4d7f-a1a2-fc12862d40bc
[iat] => 1560334984
[exp] => 1560338584
)
Какие дополнительные биты?
ДРУГОЕ РЕДАКТИРОВАНИЕ!
ОК, так что, похоже, ничегоделать с дополнительными битами
Это сработало ...
$token = json_decode('{
"resource": {
"dashboard": 5
},
"params": {}
}');
По-прежнему целесообразно включать exp и iat и т. д.?