From d6fe5776f8d135b3293e5fa2f9d01f8417ffab9d Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Mon, 15 Sep 2014 19:28:51 +0200 Subject: [PATCH] Add test suite for jsonwebtoken package --- jsonwebtoken/jsonwebtoken-tests.ts | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 jsonwebtoken/jsonwebtoken-tests.ts diff --git a/jsonwebtoken/jsonwebtoken-tests.ts b/jsonwebtoken/jsonwebtoken-tests.ts new file mode 100644 index 0000000000..52f1163353 --- /dev/null +++ b/jsonwebtoken/jsonwebtoken-tests.ts @@ -0,0 +1,64 @@ +/** + * Test suite created by Maxime LUCE + * + * Created by using code samples from https://github.com/auth0/node-jsonwebtoken. + */ + +/// +/// + +import jwt = require("jsonwebtoken"); +import fs = require("fs"); + +var token: string; +var cert: Buffer; + +/** + * jwt.sign + * https://github.com/auth0/node-jsonwebtoken#usage + */ +// sign with default (HMAC SHA256) +token = jwt.sign({ foo: 'bar' }, 'shhhhh'); + +// sign with RSA SHA256 +cert = fs.readFileSync('private.key'); // get private key +token = jwt.sign({ foo: 'bar' }, cert, { algorithm: 'RS256'}); + +/** + * jwt.verify + * https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback + */ +// verify a token symmetric +jwt.verify(token, 'shhhhh', function(err, decoded) { + console.log(decoded.foo) // bar +}); + +// invalid token +jwt.verify(token, 'wrong-secret', function(err, decoded) { + // err + // decoded undefined +}); + +// verify a token asymmetric +cert = fs.readFileSync('public.pem'); // get public key +jwt.verify(token, cert, function(err, decoded) { + console.log(decoded.foo) // bar +}); + +// verify audience +cert = fs.readFileSync('public.pem'); // get public key +jwt.verify(token, cert, { audience: 'urn:foo' }, function(err, decoded) { + // if audience mismatch, err == invalid audience +}); + +// verify issuer +cert = fs.readFileSync('public.pem'); // get public key +jwt.verify(token, cert, { audience: 'urn:foo', issuer: 'urn:issuer' }, function(err, decoded) { + // if issuer mismatch, err == invalid issuer +}); + +/** + * jwt.decode + * https://github.com/auth0/node-jsonwebtoken#jwtdecodetoken + */ +var decoded = jwt.decode(token);