Skip to content

Commit d6fe577

Browse files
author
SomaticIT
committed
Add test suite for jsonwebtoken package
1 parent a7cee68 commit d6fe577

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

jsonwebtoken/jsonwebtoken-tests.ts

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/**
2+
* Test suite created by Maxime LUCE <https://github.com/SomaticIT>
3+
*
4+
* Created by using code samples from https://github.com/auth0/node-jsonwebtoken.
5+
*/
6+
7+
/// <reference path="../node/node.d.ts" />
8+
/// <reference path="jsonwebtoken.d.ts" />
9+
10+
import jwt = require("jsonwebtoken");
11+
import fs = require("fs");
12+
13+
var token: string;
14+
var cert: Buffer;
15+
16+
/**
17+
* jwt.sign
18+
* https://github.com/auth0/node-jsonwebtoken#usage
19+
*/
20+
// sign with default (HMAC SHA256)
21+
token = jwt.sign({ foo: 'bar' }, 'shhhhh');
22+
23+
// sign with RSA SHA256
24+
cert = fs.readFileSync('private.key'); // get private key
25+
token = jwt.sign({ foo: 'bar' }, cert, { algorithm: 'RS256'});
26+
27+
/**
28+
* jwt.verify
29+
* https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback
30+
*/
31+
// verify a token symmetric
32+
jwt.verify(token, 'shhhhh', function(err, decoded) {
33+
console.log(decoded.foo) // bar
34+
});
35+
36+
// invalid token
37+
jwt.verify(token, 'wrong-secret', function(err, decoded) {
38+
// err
39+
// decoded undefined
40+
});
41+
42+
// verify a token asymmetric
43+
cert = fs.readFileSync('public.pem'); // get public key
44+
jwt.verify(token, cert, function(err, decoded) {
45+
console.log(decoded.foo) // bar
46+
});
47+
48+
// verify audience
49+
cert = fs.readFileSync('public.pem'); // get public key
50+
jwt.verify(token, cert, { audience: 'urn:foo' }, function(err, decoded) {
51+
// if audience mismatch, err == invalid audience
52+
});
53+
54+
// verify issuer
55+
cert = fs.readFileSync('public.pem'); // get public key
56+
jwt.verify(token, cert, { audience: 'urn:foo', issuer: 'urn:issuer' }, function(err, decoded) {
57+
// if issuer mismatch, err == invalid issuer
58+
});
59+
60+
/**
61+
* jwt.decode
62+
* https://github.com/auth0/node-jsonwebtoken#jwtdecodetoken
63+
*/
64+
var decoded = jwt.decode(token);

0 commit comments

Comments
 (0)