Outils pour utilisateurs

Outils du site


web:javascript:jwt

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
web:javascript:jwt [2022/04/10 21:54] sgariepyweb:javascript:jwt [2022/04/10 22:11] (Version actuelle) – [Créer le endpoint JWKS] sgariepy
Ligne 89: Ligne 89:
 Import: Import:
  
-<code>+<code javascript>
 import * as jwt from 'jsonwebtoken'; import * as jwt from 'jsonwebtoken';
 // ou // ou
Ligne 95: Ligne 95:
 </code> </code>
  
 +
 +Signer:
 +
 +<code  javascript>
 +const jwtToken = jwt.sign(
 +  { userId },
 +  this.secretsConfig.jwt,
 +  {
 +    algorithm: 'HS256',
 +    expiresIn: '14d'
 +  }
 +);
 +</code>
 +
 +Avec RS256:
 +
 +<code  javascript>
 +const privateKey = fs.readFileSync('private.key');
 +const token = jwt.sign({ foo: 'bar' }, privateKey, { algorithm: 'RS256' });
 +</code>
 +
 +Vérifier:
 +
 +<code  javascript>
 +const authHeader = req.header('x-auth-token');
 +
 +const token = jwt.verify(
 +  authHeader,
 +  secret,
 +  {
 +    algorithms: ['HS256']
 +  }
 +);
 +</code>
 +
 +Verify asymetric :
 +
 +<code  javascript>
 +import jwks from 'jwks-rsa’;
 +
 +const client = jwksClient({
 +  jwksUri: 'https://sandrino.auth0.com/.well-known/jwks.json'
 +});
 +
 +function getKey(header, callback){
 +  client.getSigningKey(header.kid, function(err, key) {
 +    var signingKey = key.publicKey || key.rsaPublicKey;
 +    callback(null, signingKey);
 +  });
 +}
 +
 +jwt.verify(token, getKey, options, function(err, decoded) {
 +  console.log(decoded.foo) // bar
 +});
 +</code>
 +
 +
 +
 +
 +
 +===== jwks-rsa =====
 +
 +
 +Importer:
 +
 +<code>
 +import jwks from 'jwks-rsa’;
 +// ou
 +import * as jwks from 'jwks-rsa';
 +<code>
 +
 +<code>
 +const jwksClient = jwksClient({
 +  cache: true,
 +  jwksUri: 'https://appleid.apple.com/auth/keys',
 +});
 +</code>
  
  
 ====== JOSE ====== ====== JOSE ======
 +
 +  * [[https://github.com/panva/jose/|GitHub]]
 +  * [[https://github.com/panva/jose/blob/main/docs/README.md|Documentation]]
  
 ===== Clé privée ===== ===== Clé privée =====
web/javascript/jwt.1649620442.txt.gz · Dernière modification : 2022/04/10 21:54 de sgariepy