diff --git a/package.json b/package.json index 891f2c0..a275ba7 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "prisma": "^7.10.1", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2", - "tc-core-library-js": "https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6" + "tc-core-library-js": "https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a" }, "devDependencies": { "@eslint/eslintrc": "^3.3.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07c5313..ec3d0a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ overrides: browserslist: 4.28.8 axios@<1: 0.34.0 axios@>=1: 1.21.0 - tc-core-library-js: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6 + tc-core-library-js: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a deepmerge-ts: 8.0.0 defu: 6.1.7 effect@^3: 3.22.0 @@ -96,8 +96,8 @@ importers: specifier: ^7.8.2 version: 7.8.2 tc-core-library-js: - specifier: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6 - version: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6(supports-color@8.1.1) + specifier: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a + version: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a(supports-color@8.1.1) devDependencies: '@eslint/eslintrc': specifier: ^3.3.7 @@ -3290,9 +3290,9 @@ packages: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tc-core-library-js@https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6: - resolution: {tarball: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6} - version: 4.0.0-rc.2 + tc-core-library-js@https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a: + resolution: {gitHosted: true, integrity: sha512-n+4KUOeV4LEIsTI/R216dBc6bUkbSyO/2O0LpoY3Hk7eqKsRQFUHloB3y0hfK/v1rzf8qYQxTdv8ikeRGBn4pQ==, tarball: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a} + version: 4.0.0-rc.2.1 engines: {node: '>=22.13'} terser-webpack-plugin@5.6.1: @@ -7219,7 +7219,7 @@ snapshots: tapable@2.3.3: {} - tc-core-library-js@https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6(supports-color@8.1.1): + tc-core-library-js@https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a(supports-color@8.1.1): dependencies: '@types/jsonwebtoken': 9.0.10 jsonwebtoken: 9.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 98d295a..bf7121d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -34,7 +34,7 @@ overrides: browserslist: 4.28.8 axios@<1: 0.34.0 axios@>=1: 1.21.0 - tc-core-library-js: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/58de37670180e183e8378c3d203df0112a0414f6 + tc-core-library-js: https://codeload.github.com/topcoder-platform/tc-core-library-js/tar.gz/c2df92b2227089909ab6e229df0ec6b658bb431a deepmerge-ts: 8.0.0 defu: 6.1.7 effect@^3: 3.22.0 diff --git a/src/auth/jwt.service.spec.ts b/src/auth/jwt.service.spec.ts index f1931b9..17d046f 100644 --- a/src/auth/jwt.service.spec.ts +++ b/src/auth/jwt.service.spec.ts @@ -10,6 +10,7 @@ function token(claims: Record = {}): string { ).toString('base64url'); const body = Buffer.from( JSON.stringify({ + emailVerified: true, iss: 'https://issuer.test/', sub: '42', userId: '42', @@ -37,5 +38,10 @@ describe('shared Forums JWT identity', () => { expect(user.isMachine).toBe(false); expect(user.roles).toEqual([]); expect(user.userId).toBe('42'); + for (const emailVerified of [undefined, false, 'true']) { + await expect( + service.validateToken(token({ emailVerified })), + ).rejects.toThrow('Invalid or expired access token'); + } }); });