Skip to content

dafortune/chai-jwt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chai-JWT

JSON Web tokens helpers for Chai

Description

A set of helpers for chai that allow you to make assertions on json web tokens.

Installation

npm i chai-jwt

Usage

const chai = require('chai');
const chaiJWT = require('chai-jwt');

chai.use(chaiJWT);

Assertions

.jwt

Asserts that the provided string has a valid format that can be parsed as JWT. Does not check signature or the provided fields. If succeed, it changes the context to the decoded token.

Example

  const validJWT = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InVwZGF0ZTpzb21ldGhpbmciLCJleHAiOjE0NzA3NjE3ODEsImlhdCI6MTQ3MDc2MDc5M30.1b4RC22Kpx4X4GWXU-Wgsk4IbeRGVD7tNW-tM-LzkVE';
  const invalidJWT = 'eyJ0eXAiOiJK22V1QiLCJhbGciOiJIUzI1NiJ9..1b4RC22Kpx4X4GWXU-Wgsk4IbeRGVD7tNW-tM-LzkVE';

  expect(validJWT).to.be.a.jwt; // Doesn't fail
  expect(invalidJWT).to.be.a.jwt; // fails

  expect(validJWT).to.be.a.jwt.and.eql({
    "scope": "update:something",
    "exp": 1470761781,
    "iat": 1470760793
  });

.signedWith(secret)

Asserts that the provided token is signed with the provided secret.

Example

  const validJWT = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InVwZGF0ZTpzb21ldGhpbmciLCJleHAiOjE0NzA3NjE3ODEsImlhdCI6MTQ3MDc2MDc5M30.1b4RC22Kpx4X4GWXU-Wgsk4IbeRGVD7tNW-tM-LzkVE';

  expect(validJWT).to.be.signedWith('1234'); // Doesn't fail
  expect(validJWT).to.be.signedWith('not the right secret'); // fails

.claim(key, [value])

Alias of .property for JWTs. Asserts that the provided token has a given claim. If value is provided it will also assert the claim value using strict equality.

Example

  const validJWT = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InVwZGF0ZTpzb21ldGhpbmciLCJleHAiOjE0NzA3NjE3ODEsImlhdCI6MTQ3MDc2MDc5M30.1b4RC22Kpx4X4GWXU-Wgsk4IbeRGVD7tNW-tM-LzkVE';

  expect(validJWT).to.be.a.jwt.and.have.claim('scope'); // Doesn't fail
  expect(validJWT).to.be.a.jwt.and.have.claim('other'); // fails

About

Chai JSON Web tokens helper

Resources

License

Stars

Watchers

Forks

Packages

No packages published