簡體   English   中英

驗證節點PEM_read_bio_PUBKEY上的RS256 jwt是否失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM