使用PHP

时间:2019-06-12 10:04:00

标签: php jwt

我正在尝试使用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等吗?

0 个答案:

没有答案