如何在没有密钥或没有验证的情况下解码 php/laravel 中的 jwt?

jov*_*610 3 php jwt laravel

所以我的情况是我从另一个 api 接收 jwt。如果我想验证 jwt,我也会向该 API 发送请求。

如果我想在前端 Javascript (React) 中对其进行解码,我只需要获取 jwt-decode 库。该库不会检查令牌是否仍然有效,它只是对其进行解码。

现在我正在寻找类似的方法来在 php/laravel 中实现此目的。我检查了tymon/jwt-authfirebase/php-jwt。仅当令牌由同一库创建时,两者才有效。当您解码令牌时,Firebase jwt 需要密钥,而 Tymon 的文档中没有提及如何解码从其他库创建的令牌...

所以这基本上是我的问题,有没有办法用 php/laravel 解码另一个库创建的 jwt?

小智 10

更准确地说,我们必须在将 Base64 解码应用于其有效负载之前拆分 JWT,如https://github.com/firebase/php-jwt/issues/68#issuecomment-244768025中所述。

例子:

            list($header, $payload, $signature) = explode('.', $encodedToken);
            $jsonToken = base64_decode($payload);
            $arrayToken = json_decode($jsonToken, true);
            print_r($arrayToken);
Run Code Online (Sandbox Code Playgroud)