Saltar al contenido

La verificación de Auth0 JWT arroja un algoritmo no válido

Ya no tienes que indagar más por todo internet ya que estás al espacio adecuado, contamos con la respuesta que buscas y sin liarte.

Solución:

Si estás usando solo un secreto key entonces usar RS256 no funcionará, ya que se basa en un privado/público key par. Usando solo un secreto key generalmente indica H256. En mi respuesta asumo que lo que llamas MYSECRET es solo el contenido de certificate.pem.

De todos modos, asumiría que su string tiene que contener

-----BEGIN RSA PRIVATE KEY-----

y

-----END RSA PRIVATE KEY-----

o PÚBLICO en vez de PRIVADO.

Puedes ver esto en la fuente. Las líneas mencionadas en su mensaje de error contienen:

if (!~options.algorithms.indexOf(header.alg)) 
  return done(new JsonWebTokenError('invalid algorithm'));

y options.algorithms Se define como

if (!options.algorithms) 
                       ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ?
                        [ 'RS256','RS384','RS512','ES256','ES384','ES512' ] :
                       ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ?
                        [ 'RS256','RS384','RS512' ] :
                        [ 'HS256','HS384','HS512' ];


Si no tiene las cosas RSA al principio y al final, buscará los siguientes algoritmos: 'HS256','HS384','HS512'.

No he usado RS256 con JWT antes, pero lo he usado con ssh, y sé que es muy sensible a tener el encabezado. El string tiene que estar en el formato exactamente correcto.

Debe especificar los permitidos. algorithms como una matriz de cadenas, en lugar de un algorithm Cuerda.

jwt.verify(token, MYSECRET,  algorithms: ['RS256'] );

¿Ha intentado configurar el algoritmo en “HS256”?

Según los documentos de Auth0 en https://auth0.com/docs/api-auth/tutorials/verify-access-token#verify-the-signature

For HS256, the API's Signing Secret is used. You can find this information at your API's Settings. Note that the field is only displayed for APIs that use HS256.

For RS256, the tenant's JSON Web Key Set (JWKS) is used. Your tenant's JWKS is https://YOUR_AUTH0_DOMAIN/.well-known/jwks.json.

Reseñas y puntuaciones del tutorial

Recuerda algo, que tienes la capacidad de decir si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *