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 [2020/07/20 15:17] – [Exemple d'ID Token Cognito] sgariepyweb:javascript:jwt [2022/04/10 22:11] (Version actuelle) – [Créer le endpoint JWKS] sgariepy
Ligne 76: Ligne 76:
 </code> </code>
  
 +====== Packages npm ======
 +
 +===== jsonwebtoken =====
 +
 +
 +<code>
 +npm install jsonwebtoken -S
 +npm install @types/jsonwebtoken -D
 +</code>
 +
 +
 +Import:
 +
 +<code javascript>
 +import * as jwt from 'jsonwebtoken';
 +// ou
 +import jwt from 'jsonwebtoken';
 +</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 =====
Ligne 240: Ligne 339:
 } }
 </code> </code>
- 
- 
- 
- 
- 
- 
- 
- 
- 
  
  
web/javascript/jwt.1595251031.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)