Skip to content

Instantly share code, notes, and snippets.

@imroca
Last active May 24, 2024 02:11
Show Gist options
  • Save imroca/46418d307125d3007fecd29c798920a1 to your computer and use it in GitHub Desktop.
Save imroca/46418d307125d3007fecd29c798920a1 to your computer and use it in GitHub Desktop.
Validate Auth0 id_token
import jwt from "jsonwebtoken";
import jwksClient from "jwks-rsa";
const idToken = "<idtoken>";
const decoded = jwt.decode(idToken, { complete: true }) as any;
const { kid } = decoded.header;
const { iss } = decoded.payload;
const response = await fetch(
`${token.payload.iss}.well-known/openid-configuration`
);
const { jwks_uri } = await response.json();
var client = jwksClient({
jwksUri: jwks_uri,
requestHeaders: {
"user-agent": "example-agent/0.0.1 (https://example.com)",
},
});
const key = await client.getSigningKey(kid);
const signingKey = key.getPublicKey();
const verified = jwt.verify(idToken, signingKey);
console.log(verified);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment