Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
06c5605bf2
|
|||
|
a4edaba6f0
|
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@tsndr/cloudflare-worker-jwt",
|
"name": "@tsndr/cloudflare-worker-jwt",
|
||||||
"version": "3.1.6",
|
"version": "3.1.7",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@tsndr/cloudflare-worker-jwt",
|
"name": "@tsndr/cloudflare-worker-jwt",
|
||||||
"version": "3.1.6",
|
"version": "3.1.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cloudflare/workers-types": "^4.20250525.0",
|
"@cloudflare/workers-types": "^4.20250525.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@tsndr/cloudflare-worker-jwt",
|
"name": "@tsndr/cloudflare-worker-jwt",
|
||||||
"version": "3.1.6",
|
"version": "3.1.7",
|
||||||
"description": "A lightweight JWT implementation with ZERO dependencies for Cloudflare Worker",
|
"description": "A lightweight JWT implementation with ZERO dependencies for Cloudflare Worker",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./index.js",
|
"exports": "./index.js",
|
||||||
|
|||||||
@@ -13,27 +13,27 @@ describe("Verify", async () => {
|
|||||||
const notYetValidToken = await jwt.sign({ sub: "me", nbf: now + offset }, secret)
|
const notYetValidToken = await jwt.sign({ sub: "me", nbf: now + offset }, secret)
|
||||||
const expiredToken = await jwt.sign({ sub: "me", exp: now - offset }, secret)
|
const expiredToken = await jwt.sign({ sub: "me", exp: now - offset }, secret)
|
||||||
|
|
||||||
test("Valid", () => {
|
test("Valid", async () => {
|
||||||
expect(jwt.verify(validToken, secret, { throwError: true })).resolves.toBeTruthy()
|
await expect(jwt.verify(validToken, secret, { throwError: true })).resolves.toBeTruthy()
|
||||||
})
|
})
|
||||||
|
|
||||||
test("Not yet expired", () => {
|
test("Not yet expired", async () => {
|
||||||
expect(jwt.verify(notYetExpired, secret, { throwError: true })).resolves.toBeTruthy()
|
await expect(jwt.verify(notYetExpired, secret, { throwError: true })).resolves.toBeTruthy()
|
||||||
})
|
})
|
||||||
|
|
||||||
test("Not yet valid", () => {
|
test("Not yet valid", async () => {
|
||||||
expect(jwt.verify(notYetValidToken, secret, { throwError: true })).rejects.toThrowError("NOT_YET_VALID")
|
await expect(jwt.verify(notYetValidToken, secret, { throwError: true })).rejects.toThrowError("NOT_YET_VALID")
|
||||||
})
|
})
|
||||||
|
|
||||||
test("Expired", () => {
|
test("Expired", async () => {
|
||||||
expect(jwt.verify(expiredToken, secret, { throwError: true })).rejects.toThrowError("EXPIRED")
|
await expect(jwt.verify(expiredToken, secret, { throwError: true })).rejects.toThrowError("EXPIRED")
|
||||||
})
|
})
|
||||||
|
|
||||||
test("Clock offset", () => {
|
test("Clock offset", async () => {
|
||||||
expect(jwt.verify(notYetValidToken, secret, { clockTolerance: offset, throwError: true })).resolves.toBeTruthy()
|
await expect(jwt.verify(notYetValidToken, secret, { clockTolerance: offset, throwError: true })).resolves.toBeTruthy()
|
||||||
expect(jwt.verify(expiredToken, secret, { clockTolerance: offset, throwError: true })).resolves.toBeTruthy()
|
await expect(jwt.verify(expiredToken, secret, { clockTolerance: offset, throwError: true })).resolves.toBeTruthy()
|
||||||
|
|
||||||
expect(jwt.verify(notYetValidToken, secret, { clockTolerance: offset - 1, throwError: true })).rejects.toThrowError("NOT_YET_VALID")
|
await expect(jwt.verify(notYetValidToken, secret, { clockTolerance: offset - 1, throwError: true })).rejects.toThrowError("NOT_YET_VALID")
|
||||||
expect(jwt.verify(expiredToken, secret, { clockTolerance: offset - 1, throwError: true })).rejects.toThrowError("EXPIRED")
|
await expect(jwt.verify(expiredToken, secret, { clockTolerance: offset - 1, throwError: true })).rejects.toThrowError("EXPIRED")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -67,7 +67,7 @@ describe("Imports", () => {
|
|||||||
const testAlgorithm = { name: "HMAC", hash: { name: "SHA-256" } }
|
const testAlgorithm = { name: "HMAC", hash: { name: "SHA-256" } }
|
||||||
const testCryptoKey = { type: "secret", extractable: true, algorithm: { ...testAlgorithm, length: 168 }, usages: ["verify", "sign"] }
|
const testCryptoKey = { type: "secret", extractable: true, algorithm: { ...testAlgorithm, length: 168 }, usages: ["verify", "sign"] }
|
||||||
|
|
||||||
expect(await importTextSecret(testKey, testAlgorithm, ["verify", "sign"])).toMatchObject(testCryptoKey)
|
await expect(importTextSecret(testKey, testAlgorithm, ["verify", "sign"])).resolves.toMatchObject(testCryptoKey)
|
||||||
})
|
})
|
||||||
|
|
||||||
test.todo("importJwk")
|
test.todo("importJwk")
|
||||||
|
|||||||
Reference in New Issue
Block a user