[英]Verify a RS256 jwt on node PEM_read_bio_PUBKEY failed
我正在嘗試驗證使用RS256
算法的jwt
。 使用hs256
算法時一切正常
let opts = {
audience: 'y',
issuer: `https://x.auth0.com/`,
algorithms: ["RS256"]
}
jwt.verify(payload.token, 'secret', opts, (err, decoded) => {
if (err) {
console.log("invalid token in iamonline service " + err.message);
return;
}
我一直收到錯誤: PEM_read_bio_PUBKEY failed
雖然auth0
有這樣做的文檔 ,但它假設你使用的是express,我不是。 我在websocket上這樣做,所以沒有中間件。
令人討厭的是HS256
對我來說很好,但auth0自定義登錄表格似乎需要RS256
。
RS256
需要一個公鑰來驗證,但是你提供了一個字符串
jwt.verify(payload.token, 'secret', opts, (err, decoded) => {
請參閱auth0的文檔
jwt.verify(token,secretOrPublicKey,[options,callback])
token
是JsonWebToken字符串
secretOrPublicKey
是一個字符串或緩沖區,包含HMAC算法的秘密或RSA和ECDSA的PEM編碼公鑰。
您需要提供PEM公鑰而不是secret
。 PEM文件內容將以-----BEGIN PUBLIC KEY-----
開頭
var publicKey = fs.readFileSync('public.pem');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.