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

Posted

技术标签:

【中文标题】如何在没有密钥或没有验证的情况下解码 php/laravel 中的 jwt?【英文标题】:How to decode jwt in php/laravel without the secret key or without validation? 【发布时间】:2021-12-01 19:29:02 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

您可以使用解码 JWT https://www.php.net/manual/ru/function.base64-decode.php 要么 https://www.php.net/manual/ru/function.sodium-base642bin.php

JWT 只是用点分隔的 base64 url​​ 编码部分 https://jwt.io/

【讨论】:

以上是关于如何在没有密钥或没有验证的情况下解码 php/laravel 中的 jwt?的主要内容,如果未能解决你的问题,请参考以下文章

在没有秘密的情况下解码 JWT 令牌

如何在没有守卫装饰器的情况下始终验证 JWT? (Nest.js + 护照)

如何在没有服务器的情况下在本地测试我的 ssh 密钥

在没有库的情况下在 Java 中读取 PKCS#1 或 SPKI 公钥

如何在没有用户身份验证的情况下从 Spotify 或任何其他 API 获取歌曲预览

如何在没有 http 或 https 的情况下验证 Jquery 插件 url?