Skip to content

joaquimserafim/json-web-token

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

json-web-token

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.

info & more info

Build StatusCode Coverage 100%ISC License

###API

jwt#encode(key, payload, [algorithm], cb)
  • 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)

jwt#decode(key, token, cb)
  • key, your secret
  • token, the JWT token
  • cb, the callback(err[name, message], payloadDecoded)

Example

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