From 40072a9aa95b843086a4c9ba1c072e1b950e15a7 Mon Sep 17 00:00:00 2001 From: Christian Smith Date: Wed, 7 Oct 2015 14:22:05 -0700 Subject: [PATCH] feat(ClientToken): add "jti" claim --- models/ClientToken.js | 12 +++++++++++- test/unit/models/clientTokenSpec.coffee | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/models/ClientToken.js b/models/ClientToken.js index 01679c6d..4033c98c 100644 --- a/models/ClientToken.js +++ b/models/ClientToken.js @@ -2,6 +2,7 @@ * Module dependencies */ +var crypto = require('crypto') var JWT = require('anvil-connect-jwt') var nowSeconds = require('../lib/time-utils').nowSeconds @@ -26,10 +27,11 @@ var ClientToken = JWT.define({ }, // permitted claims - claims: ['iss', 'sub', 'aud', 'iat', 'scope'], + claims: ['jti', 'iss', 'sub', 'aud', 'exp', 'iat', 'scope'], // modify payload schema registeredClaims: { + jti: { format: 'String', required: true, default: random }, iss: { format: 'StringOrURI', required: true }, sub: { format: 'StringOrURI', required: true }, aud: { format: 'StringOrURI', required: true }, @@ -40,6 +42,14 @@ var ClientToken = JWT.define({ }) +/** + * Random + */ + +function random () { + return crypto.randomBytes(10).toString('hex') +} + /** * Issue */ diff --git a/test/unit/models/clientTokenSpec.coffee b/test/unit/models/clientTokenSpec.coffee index d276c745..2719da9c 100644 --- a/test/unit/models/clientTokenSpec.coffee +++ b/test/unit/models/clientTokenSpec.coffee @@ -62,6 +62,9 @@ describe 'Client Token', -> describe 'claims', -> + it 'should have "jti" Token Identifer', -> + ClientToken.registeredClaims.jti.format.should.equal 'String' + it 'should require "iss" Issuer Identifier', -> ClientToken.registeredClaims.iss.required.should.be.true