[英]Algorithm Not Allowed error with Firebase trying to decode JWT token
我在尝试使用 php 和 Firebase 解密 JWT 令牌时遇到很多问题
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;
try {
$key = 'MYKEY';
$token = $_POST['id_token'];
$data = JWT::decode($token, $key, array('HS256'));
} catch (\Exception $e) {
echo $e;
}
?>
JWT.php:97 中不允许的算法
有没有人有过这个?
保罗
如果我没记错的话,在 JWT 的最新版本中, decode
function 需要一个新参数(允许的算法)。 以前这不是必需的。
我用它来获取所有支持的算法:
$decoded = JWT::decode($token, $key, array_keys(JWT::$supported_algs));
您应该使用谷歌密钥来解码令牌。
$googleKeysURL = 'https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com';
$key = json_decode(file_get_contents($googleKeysURL), true);
$decoded = JWT::decode($token, $key, array("RS256"));
由于服务器时区,我也遇到了问题,所以我在解码行之前添加了这个:
JWT::$leeway = 600;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.