jsonwebtoken.verify 方法从 keycloak 令牌中给出错误
Posted
技术标签:
【中文标题】jsonwebtoken.verify 方法从 keycloak 令牌中给出错误【英文标题】:jsonwebtoken.verify method giving error from keycloak token 【发布时间】:2022-01-10 04:47:04 【问题描述】:我使用 /auth/realms//protocol/openid-connect/certs 端点并对从此端点返回的 x5c 公钥进行硬编码,以尝试使该代码正常工作(包装在 BEGIN RSA/END RSA 标记中),如下所示:
let x5c = "MIICnTCCAYUCBgF9TkI2ijANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdldmlkZW5zMB4XDTIxMTEyMzE5MjMyMVoXDTMxMTEyMzE5MjUwMVowEjEQMA4GA1UEAwwHZXZpZGVuczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgx8kfUyhUz6146LcXJHykE5d/kfkJGHZ1+AH4wfk0Z1rGeNqRUH7bllutre2xrq/EfuKGkuUul8uf7WH3GTyOFJyr1MECnzilYdN8onobpVHXr3SwANCACMsh6tFc6oiQT0XEt1ovzTzB6vxA6qmmsdLPG9giJ9eNqJNHHQiIJosF3yBBoNFDiQDonRNdWNQz5JVxbsdIOhFrdD+mDU0ry9FIs6qMAvD84QVBOzJr/IOCdSy3bfWYyAUsLHqoJbytAzl5EgjVSU2UT+HLs7M2wfZoRGITztmvkcPjqd7PnSOuuAimonwP7uKHtvG+edRabyHaBDSemEA1LUs7+FGkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAIh4QCe6Y3fJtDV6nBi/E3CGo/SIjDCmNnOV413QtmwODZSWFqo6pxs2fJoDb8jIkTf+l8/bI+mKEesXK1CptBpXXyo7Il0jhk5M0c1VT7EkLa/jkVFNr0CoB3UmH56/29Qp8+Xr8TaejGjgS8HoxAMpSFrtjPlKElCcy8dVQgRMxFonry5Iipd4vutc8Afe/GLzJew0IJ5Az1VUum3bJD0IfeecB8F+YOMmaET0oJIQyfdUxVI985Ui30q4K8/p34+WqwvNy2x4vuulvDVRBsHG64PStzhqZQfsfi59lOps4WvYlQ1JEHTu3acZMyTzij6wrVTAFoh1C3FptZ0wPoQ==";
let pemEncoded = `-----BEGIN RSA PUBLIC KEY-----\n$x5c\n-----END RSA PUBLIC KEY-----\n`;
const payload = verify(token, pemEncoded, "algorithms": ["RS256"] ));
但我认为我没有正确的 PEM,我整天都在努力寻找如何设置此证书以进行验证。错误显示“错误:0D0680A8:asn1 编码例程:asn1_check_tlen:wrong tag”。令牌是有效的,但它不喜欢我的证书。知道我在这里做错了什么吗?
在这种情况下,将此证书传递给 jsonwebtoken.verify 方法的正确方法是什么?谢谢!
【问题讨论】:
【参考方案1】:那是证书,所以:
let pemEncoded = `-----BEGIN CERTIFICATE-----\n$x5c\n-----END CERTIFICATE-----\n`;
【讨论】:
以上是关于jsonwebtoken.verify 方法从 keycloak 令牌中给出错误的主要内容,如果未能解决你的问题,请参考以下文章