UNPKG

@berlingske-media/bm.node-module.gateway_jwt

Version:

AuthGateway JWT verification library based on public JWKS endpoint

40 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const JwksClient_1 = require("../JwksClient"); const keys_1 = require("../keys"); const express_1 = tslib_1.__importDefault(require("express")); describe('JwksClient (interceptor)', () => { const jwksHost = 'http://localhost:5556'; let server; let app; beforeAll(() => { server = (0, express_1.default)(); server.get('/.well-known/jwks.json', function (req, res) { return res.status(200).json({ keys: keys_1.keys }); }); app = server.listen({ port: 5556 }); }); afterAll(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () { yield new Promise((resolve) => app.close(resolve)); })); describe('#getSigningKeys', () => { it('should prefer key from interceptor', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const client = new JwksClient_1.JwksClient({ jwksUri: `${jwksHost}/.well-known/jwks.json`, getKeysInterceptor: () => Promise.resolve(keys_1.keys[1]), }); const key = yield client.getSigningKey('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA'); expect(key.kid).toEqual('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA'); })); it('should fallback to fetch from jwksUri', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const client = new JwksClient_1.JwksClient({ jwksUri: `${jwksHost}/.well-known/jwks.json`, getKeysInterceptor: () => Promise.resolve([]), }); const key = yield client.getSigningKey('RkI5MjI5OUY5ODc1N0Q4QzM0OUYzNkVGMTJDOUEzQkFCOTU3NjE2Rg'); expect(key.kid).toEqual('RkI5MjI5OUY5ODc1N0Q4QzM0OUYzNkVGMTJDOUEzQkFCOTU3NjE2Rg'); })); }); }); //# sourceMappingURL=interceptor.test.js.map