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] – [Payload] 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> <code>
-eyJraWQiOiJTXC8yc1lESEpQcFh2UWNsOHRiS0U1QStBRVNieHVcL2c2SmZRV1hIN0pqNjA9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIzOWQ3NjlhYS1mMWE1LTRlNDctYjZlMC1hMzAyZjgxOWJhODIiLCJhdWQiOiI3ZGlpZXBsMzBraWxmNWZoZ2sxYjJqZjdjNSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJldmVudF9pZCI6ImQxZjQxZTYxLTVmZGQtNDgxNS1hMzMzLWM1Yjg2Y2E5YzE2ZSIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNTk1MjUwNjczLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb21cL2NhLWNlbnRyYWwtMV9kWFlqa1pjN3IiLCJjb2duaXRvOnVzZXJuYW1lIjoic2dhcmllcHlAYmh2ci5jb20iLCJleHAiOjE1OTUyNTQyNzMsImlhdCI6MTU5NTI1MDY3MywiZW1haWwiOiJzZ2FyaWVweUBiaHZyLmNvbSJ9.UttCWsH9b_9ahYmYx87iyXc60BjqJTrDZQ3e4gHjOPgX97wFdawwCRmJd0ChI6J-dUVogwCWGaj3z2JPDo2XYB8L7WPxFceFkEHLOQTOSU2uk_3B9d-CRTBPjAjllV89dksJtRRmwhUIdT_uBGNpoI9T_CtMMm6yBV9zJCjPrgys1eRdsRk9BA45bd8Saf_JPqUa9lMqvT8Ka9uq0naXt0CB4m6zwMvqbBMVONdbeZ2ET3BZxt2BW9Qp6Bzg4qUe2Mliatfzd0tIyDkWlHY1lZcrJqkFLwmnxLDwtzlYek5q0fzgJwF0qxiuPwk16opuj_plOnlo7CU9-WDzNJszgg+npm install jsonwebtoken -
 +npm install @types/jsonwebtoken -D
 </code> </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 244: Ligne 339:
 } }
 </code> </code>
- 
- 
- 
- 
- 
- 
- 
- 
- 
  
  
web/javascript/jwt.1595251021.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)