JWT encode and decode for Node.js that can use callbacks or by returning an object {error:, value:}
WIKI
JSON Web Token (JWT) is a compact URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JavaScript Object Notation (JSON) object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or MACed and/or encrypted.
###API
-
key, your secret
-
payload, the payload or Claim Names,
ex:
{ "iss": "my_issurer", "aud": "World", "iat": 1400062400223, "typ": "/online/transactionstatus/v2", "request": { "myTransactionId": "[myTransactionId]", "merchantTransactionId": "[merchantTransactionId]", "status": "SUCCESS" } }
attention that exists some reserved claim names (like "iss", "iat", etc..) check in here for more info about JWT Claims.
-
algorithm, default to 'sha256', use jwt#getAlgorithms() to get the supported algorithms
-
cb, the callback(err[name, message], token)
- key, your secret
- token, the JWT token
- cb, the callback(err[name, message], payloadDecoded)
var jwt = require('json-web-token');
var payload = {
"iss": "my_issurer",
"aud": "World",
"iat": 1400062400223,
"typ": "/online/transactionstatus/v2",
"request": {
"myTransactionId": "[myTransactionId]",
"merchantTransactionId": "[merchantTransactionId]",
"status": "SUCCESS"
}
};
var secret = 'TOPSECRETTTTT';
// encode
jwt.encode(secret, payload, function (err, token) {
if (err) {
return console.error(err.name, err.message);
} else {
console.log(token);
// decode
jwt.decode(secret, token, function (err_, decode) {
if (err) {
return console.error(err.name, err.message);
} else {
console.log(decode);
}
});
}
});
#####this projet has been set up with a precommit that forces you to follow a code style, no jshint issues and 100% of code coverage before commit
to run test
npm test
to run jshint
npm run jshint
to run code style
npm run code-style
to run check code coverage
npm run check-coverage
to open the code coverage report
npm run open-coverage