passport-azure-ad
Version:
OIDC and Bearer Passport strategies for Azure Active Directory
56 lines (46 loc) • 2.42 kB
JavaScript
/**
* Copyright (c) Microsoft Corporation
* All Rights Reserved
* MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this
* software and associated documentation files (the "Software"), to deal in the Software
* without restriction, including without limitation the rights to use, copy, modify,
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
* OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
* OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
;
var chai = require('chai');
var jws = require('jws');
var jwt = require('../../lib/jsonWebToken');
const TEST_TIMEOUT = 1000000; // 1000 seconds
const secret = "12345678901234567890123456789012"; // 512 bit symmetric key
describe('json web token test', function() {
this.timeout(TEST_TIMEOUT);
var signStream = jws.createSign(
{
'header': { 'alg': 'HS256', 'typ': 'JWT'},
'payload': { 'nbf': Date.now() / 1000, 'exp': Date.now() / 1000 + 300, 'iat': Date.now() / 1000, 'iss': 'https://example.com', 'aud': 'audience' },
'secret': secret
});
var jwtString = signStream.sign(); // create the corresponding json web token
var options = { audience: 'audience', algorithms: ['HS256'], issuer: 'https://example.com' }; // validation options
it('should fail with missing sub error', function(done) {
jwt.verify(jwtString, secret, options, (err, token) => { chai.expect(err.message).to.equal('invalid sub value in payload'); done(); });
});
it('should succeed if testing access token', function(done) {
options.isAccessToken = true;
jwt.verify(jwtString, secret, options, (err, token) => { chai.expect(err).to.equal(null); done(); });
});
});