我尝试使用下面的代码验证一个有效的JWT,但是得到了一个奇怪的错误
[Error] IDX10516: Signature validation failed. Unable to match key:
kid: '-KI3Q9nNR7bRofxmeZoXqbHZGew'.
Number of keys in TokenValidationParameters: '1'.
Number of keys in Configuration: '0'.
Exceptions caught:
'[PII of type 'System.Text.StringBuilder' is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'.
token: '[PII of type 'System.IdentityModel.Tokens.Jwt.JwtSecurityToken' is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'. Valid Lifetime: 'True'. Valid Issuer: 'False'
- 代码:**
我已经看到了很多关于这个问题的参考链接,但仍然没有得到我错过了什么?我试图在本地测试,它的工作完美,但部署到Azure功能后,它失败了。
配置设置:
x一个一个一个一个x一个一个二个x
1条答案
按热度按时间b1zrtrql1#
如错误所述,您的令牌验证器尝试在jwks_uri中查找用于签名令牌的公钥,您可以在您的well-knownURL中找到它。
每个令牌都有一个头“KID”,这个头表示用于签名令牌的公钥的ID。当我检查您的jwks_uri时,没有ID为:
但是: