无效令牌:JWK 必须包含“alg”参数

问题描述 投票:0回答:1

我正在尝试验证 CakePHP 应用程序中的 Azure AD JWT 令牌,但以下部分失败了

$keys = JWK::parseKeySet($jwks);

它总是告诉我我需要一个“alg”参数,即使文档说这是可选的。首先,我从微软获取公钥,对其进行解码并解析。这就是我尝试使用它的方式:

        $jwksUri = 'https://login.microsoftonline.com/common/discovery/keys'; 
        $jwksJson = file_get_contents($jwksUri);
        $jwks = json_decode($jwksJson, true);
        $keys = JWK::parseKeySet($jwks);
        $decodedToken = JWT::decode($accessToken,new Key($keys, 'HS256'));

有人可以帮我吗?

cakephp jwt
1个回答
0
投票

parseKeySet的第二个参数允许您手动指定算法。

例如,就我而言:

$keys = JWK::parseKeySet($keys, "RS256");
© www.soinside.com 2019 - 2024. All rights reserved.