From f3d9730cefefca6cb63e15a0cb404e389ca73a0a Mon Sep 17 00:00:00 2001 From: Gabriel Fournier Date: Thu, 5 May 2022 19:32:59 -0400 Subject: [PATCH 1/3] fix: types-compabitility for express-jwt @ 7 --- index.d.ts | 21 ++++- package-lock.json | 160 +++++++++++++++++++++------------- package.json | 4 +- tests/ts-definitions.tests.ts | 22 ++++- 4 files changed, 142 insertions(+), 65 deletions(-) diff --git a/index.d.ts b/index.d.ts index 6e4ec8c..a70a037 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,6 +1,6 @@ -import { SecretCallback, SecretCallbackLong } from 'express-jwt'; import { Agent as HttpAgent } from 'http'; import { Agent as HttpsAgent } from 'https'; +import type {Jwt, Secret} from 'jsonwebtoken' declare function JwksRsa(options: JwksRsa.Options): JwksRsa.JwksClient; @@ -55,7 +55,24 @@ declare namespace JwksRsa { type SigningKey = CertSigningKey | RsaSigningKey; - function expressJwtSecret(options: ExpressJwtOptions): SecretCallbackLong; + /** + * Types are duplicated from express-jwt@6/7 + * due to numerous breaking changes in the lib's types + * whilst this lib supportd both <=6 & >=7 implementations + * + * express-jwt's installed version (or its @types) + * will be the types used at transpilation time + */ + + /** Types from express-jwt@<=6 */ + type secretType = string|Buffer; + type SecretCallbackLong = (req: Express.Request, header: any, payload: any, done: (err: any, secret?: secretType) => void) => void; + type SecretCallback = (req: Express.Request, payload: any, done: (err: any, secret?: secretType) => void) => void; + + /** Types from express-jwt@>=7 */ + type GetVerificationKey = (req: Express.Request, token: Jwt | undefined) => Secret | Promise; + + function expressJwtSecret(options: ExpressJwtOptions): SecretCallbackLong|GetVerificationKey; function passportJwtSecret(options: ExpressJwtOptions): SecretCallback; diff --git a/package-lock.json b/package-lock.json index 113fbce..9e7755a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.1.0", "license": "MIT", "dependencies": { - "@types/express-jwt": "0.0.42", + "@types/express": "^4.17.13", "debug": "^4.3.4", "jose": "^2.0.5", "limiter": "^1.1.5", @@ -17,6 +17,8 @@ }, "devDependencies": { "@types/chai": "^4.2.11", + "@types/express-jwt": "^6.0.4", + "@types/jsonwebtoken": "^8.5.8", "@types/mocha": "^5.2.7", "@types/nock": "^11.0.0", "@types/node": "^14.14.12", @@ -652,9 +654,9 @@ } }, "node_modules/@types/body-parser": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz", - "integrity": "sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -673,53 +675,66 @@ "dev": true }, "node_modules/@types/connect": { - "version": "3.4.32", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", - "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.1.tgz", - "integrity": "sha512-VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-jwt": { - "version": "0.0.42", - "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz", - "integrity": "sha1-TwTh+t+dGHJZUNwEGAikpK339a4=", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-6.0.4.tgz", + "integrity": "sha512-I53KRQ9D0eTA6hVCN9S73iOeprKS3JNWK+Cp2mDPB6uOIkTVpkgSkX394kHQzb5cd0U02I0adRmsMxHk+zX8tA==", + "dev": true, "dependencies": { "@types/express": "*", "@types/express-unless": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.16.9", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz", - "integrity": "sha512-GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ==", + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", "dependencies": { "@types/node": "*", + "@types/qs": "*", "@types/range-parser": "*" } }, "node_modules/@types/express-unless": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz", - "integrity": "sha1-T0QLkF5Cu/Uzgrgge8M33F/5/R8=", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.3.tgz", + "integrity": "sha512-TyPLQaF6w8UlWdv4gj8i46B+INBVzURBNRahCozCSXfsK2VTlL1wNyTlMKw817VHygBtlcl5jfnPadlydr06Yw==", + "dev": true, "dependencies": { "@types/express": "*" } }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", + "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/mime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", - "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/mocha": { "version": "5.2.7", @@ -742,18 +757,23 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.12.tgz", "integrity": "sha512-ASH8OPHMNlkdjrEdmoILmzFfsJICvhBsFfAum4aKZ/9U4B6M6tTmTPh+f3ttWdD74CEGV5XvXWkbyfSdXaTd7g==" }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, "node_modules/@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/serve-static": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", - "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==", + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dependencies": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/accepts": { @@ -5930,9 +5950,9 @@ "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" }, "@types/body-parser": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz", - "integrity": "sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "requires": { "@types/connect": "*", "@types/node": "*" @@ -5951,53 +5971,66 @@ "dev": true }, "@types/connect": { - "version": "3.4.32", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", - "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { "@types/node": "*" } }, "@types/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.1.tgz", - "integrity": "sha512-VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-jwt": { - "version": "0.0.42", - "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz", - "integrity": "sha1-TwTh+t+dGHJZUNwEGAikpK339a4=", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-6.0.4.tgz", + "integrity": "sha512-I53KRQ9D0eTA6hVCN9S73iOeprKS3JNWK+Cp2mDPB6uOIkTVpkgSkX394kHQzb5cd0U02I0adRmsMxHk+zX8tA==", + "dev": true, "requires": { "@types/express": "*", "@types/express-unless": "*" } }, "@types/express-serve-static-core": { - "version": "4.16.9", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz", - "integrity": "sha512-GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ==", + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", "requires": { "@types/node": "*", + "@types/qs": "*", "@types/range-parser": "*" } }, "@types/express-unless": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz", - "integrity": "sha1-T0QLkF5Cu/Uzgrgge8M33F/5/R8=", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.3.tgz", + "integrity": "sha512-TyPLQaF6w8UlWdv4gj8i46B+INBVzURBNRahCozCSXfsK2VTlL1wNyTlMKw817VHygBtlcl5jfnPadlydr06Yw==", + "dev": true, "requires": { "@types/express": "*" } }, + "@types/jsonwebtoken": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", + "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/mime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", - "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/mocha": { "version": "5.2.7", @@ -6019,18 +6052,23 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.12.tgz", "integrity": "sha512-ASH8OPHMNlkdjrEdmoILmzFfsJICvhBsFfAum4aKZ/9U4B6M6tTmTPh+f3ttWdD74CEGV5XvXWkbyfSdXaTd7g==" }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/serve-static": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", - "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==", + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/mime": "^1", + "@types/node": "*" } }, "accepts": { diff --git a/package.json b/package.json index 680a225..bedbdb0 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "node": ">=10 < 13 || >=14" }, "dependencies": { - "@types/express-jwt": "0.0.42", + "@types/express": "^4.17.13", "debug": "^4.3.4", "jose": "^2.0.5", "limiter": "^1.1.5", @@ -20,6 +20,8 @@ }, "devDependencies": { "@types/chai": "^4.2.11", + "@types/express-jwt": "^6.0.4", + "@types/jsonwebtoken": "^8.5.8", "@types/mocha": "^5.2.7", "@types/nock": "^11.0.0", "@types/node": "^14.14.12", diff --git a/tests/ts-definitions.tests.ts b/tests/ts-definitions.tests.ts index 9d5adc3..0042946 100644 --- a/tests/ts-definitions.tests.ts +++ b/tests/ts-definitions.tests.ts @@ -1,5 +1,7 @@ import * as jwksRsaType from '../index'; import {expect} from 'chai'; +import expressjwt6 from "express-jwt"; +import { expressjwt as expressjwt7, GetVerificationKey } from "express-jwt-v7"; const { jwksEndpoint } = require('../tests/mocks/jwks'); const { publicKey } = require('../tests/mocks/keys'); const jwksRsa: typeof jwksRsaType = require('../src'); @@ -24,7 +26,7 @@ describe('typescript definition', () => { }); }); - describe('getKeysInterceptor', async () => { + it('getKeysInterceptor', async () => { const keySetResponse = { keys: [ { @@ -44,4 +46,22 @@ describe('typescript definition', () => { const key = await client.getSigningKey('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA'); expect(key.kid).to.equal('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA'); }); + + it.skip('Types-Only Validation with express-jwt', () => { + expressjwt6({ + algorithms: ["RS256"], + secret: jwksRsa.expressJwtSecret({ + cache: true, + jwksUri: `https://my-authz-server/.well-known/jwks.json` + }) + }); + + expressjwt7({ + algorithms: ['RS256'], + secret: jwksRsa.expressJwtSecret({ + cache: true, + jwksUri: `https://my-authz-server/.well-known/jwks.json` + }) as GetVerificationKey + }); + }) }); From d1dbb0f236e456e5d879d24562cacf622ea562cf Mon Sep 17 00:00:00 2001 From: Gabriel Fournier Date: Fri, 6 May 2022 08:29:53 -0400 Subject: [PATCH 2/3] test: replace keyset in failing test https://github.com/auth0/node-jwks-rsa/pull/301#discussion_r866740417 --- tests/ts-definitions.tests.ts | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/tests/ts-definitions.tests.ts b/tests/ts-definitions.tests.ts index 0042946..b338e63 100644 --- a/tests/ts-definitions.tests.ts +++ b/tests/ts-definitions.tests.ts @@ -4,6 +4,7 @@ import expressjwt6 from "express-jwt"; import { expressjwt as expressjwt7, GetVerificationKey } from "express-jwt-v7"; const { jwksEndpoint } = require('../tests/mocks/jwks'); const { publicKey } = require('../tests/mocks/keys'); +const { x5cSingle } = require('../tests/keys.js'); const jwksRsa: typeof jwksRsaType = require('../src'); describe('typescript definition', () => { @@ -27,20 +28,9 @@ describe('typescript definition', () => { }); it('getKeysInterceptor', async () => { - const keySetResponse = { - keys: [ - { - alg: 'RS256', - kty: 'RSA', - use: 'sig', - kid: 'NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA' - } - ] - }; - const client = new jwksRsa.JwksClient({ jwksUri: `${jwksHost}/.well-known/jwks.json`, - getKeysInterceptor: () => Promise.resolve(keySetResponse.keys) + getKeysInterceptor: () => Promise.resolve(x5cSingle.keys) }); const key = await client.getSigningKey('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA'); From c98ac1feb4e63b490bdf5d15b40c4de5649aa5a4 Mon Sep 17 00:00:00 2001 From: Gabriel Fournier Date: Fri, 6 May 2022 08:34:01 -0400 Subject: [PATCH 3/3] test: remove skip marker Going from types-only test to types & unexpected throw at initialization... --- tests/ts-definitions.tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ts-definitions.tests.ts b/tests/ts-definitions.tests.ts index b338e63..777b103 100644 --- a/tests/ts-definitions.tests.ts +++ b/tests/ts-definitions.tests.ts @@ -8,7 +8,7 @@ const { x5cSingle } = require('../tests/keys.js'); const jwksRsa: typeof jwksRsaType = require('../src'); describe('typescript definition', () => { - const jwksHost = 'http://my-authz-server'; + const jwksHost = 'http://localhost'; describe('hapiJwt2KeyAsync', () => { it('should return a secret provider function', async () => { @@ -37,7 +37,7 @@ describe('typescript definition', () => { expect(key.kid).to.equal('NkFCNEE1NDFDNTQ5RTQ5OTE1QzRBMjYyMzY0NEJCQTJBMjJBQkZCMA'); }); - it.skip('Types-Only Validation with express-jwt', () => { + it('Types-Only Validation with express-jwt', () => { expressjwt6({ algorithms: ["RS256"], secret: jwksRsa.expressJwtSecret({