mirror of
https://github.com/hanzoai/node-jsonwebtoken.git
synced 2026-09-24 17:00:48 +00:00
* fix(sign&verify)!: Remove default none support from sign and verify methods, and require it to be explicitly configured BREAKING CHANGE: Removes fallback for none algorithm for the verify method.
74 lines
2.0 KiB
JavaScript
74 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
const expect = require('chai').expect;
|
|
const util = require('util');
|
|
const testUtils = require('./test-utils');
|
|
|
|
function signWithPayload(payload, callback) {
|
|
testUtils.signJWTHelper(payload, 'secret', {algorithm: 'HS256'}, callback);
|
|
}
|
|
|
|
describe('with a private claim', function() {
|
|
[
|
|
true,
|
|
false,
|
|
null,
|
|
-1,
|
|
0,
|
|
1,
|
|
-1.1,
|
|
1.1,
|
|
'',
|
|
'private claim',
|
|
'UTF8 - José',
|
|
[],
|
|
['foo'],
|
|
{},
|
|
{foo: 'bar'},
|
|
].forEach((privateClaim) => {
|
|
it(`should sign and verify with claim of ${util.inspect(privateClaim)}`, function (done) {
|
|
signWithPayload({privateClaim}, (e1, token) => {
|
|
testUtils.verifyJWTHelper(token, 'secret', {}, (e2, decoded) => {
|
|
testUtils.asyncCheck(done, () => {
|
|
expect(e1).to.be.null;
|
|
expect(e2).to.be.null;
|
|
expect(decoded).to.have.property('privateClaim').to.deep.equal(privateClaim);
|
|
});
|
|
})
|
|
});
|
|
});
|
|
});
|
|
|
|
// these values JSON.stringify to null
|
|
[
|
|
-Infinity,
|
|
Infinity,
|
|
NaN,
|
|
].forEach((privateClaim) => {
|
|
it(`should sign and verify with claim of ${util.inspect(privateClaim)}`, function (done) {
|
|
signWithPayload({privateClaim}, (e1, token) => {
|
|
testUtils.verifyJWTHelper(token, 'secret', {}, (e2, decoded) => {
|
|
testUtils.asyncCheck(done, () => {
|
|
expect(e1).to.be.null;
|
|
expect(e2).to.be.null;
|
|
expect(decoded).to.have.property('privateClaim', null);
|
|
});
|
|
})
|
|
});
|
|
});
|
|
});
|
|
|
|
// private claims with value undefined are not added to the payload
|
|
it(`should sign and verify with claim of undefined`, function (done) {
|
|
signWithPayload({privateClaim: undefined}, (e1, token) => {
|
|
testUtils.verifyJWTHelper(token, 'secret', {}, (e2, decoded) => {
|
|
testUtils.asyncCheck(done, () => {
|
|
expect(e1).to.be.null;
|
|
expect(e2).to.be.null;
|
|
expect(decoded).to.not.have.property('privateClaim');
|
|
});
|
|
})
|
|
});
|
|
});
|
|
});
|