我正在尝试使用PHP创建一个JWT,该JWT似乎可以正常工作,但是该令牌对于我用于(元数据库)的应用程序无效。
这是我的代码
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等吗?