我正在尝试验证 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'));
有人可以帮我吗?
parseKeySet的第二个参数允许您手动指定算法。
例如,就我而言:
$keys = JWK::parseKeySet($keys, "RS256");