@vurb/jwt 3.2.1 → 3.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -79
- package/dist/JwtVerifier.d.ts +2 -1
- package/dist/JwtVerifier.d.ts.map +1 -1
- package/dist/JwtVerifier.js +11 -7
- package/dist/JwtVerifier.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<h1 align="center">@vurb/jwt</h1>
|
|
3
|
-
<p align="center">
|
|
4
|
-
<strong>JWT Verification Middleware</strong> — Standards-compliant token validation for Vurb.ts servers
|
|
5
|
-
</p>
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
<p align="center">
|
|
9
|
-
<a href="https://www.npmjs.com/package/@vurb/jwt"><img src="https://img.shields.io/npm/v/@vurb/jwt?color=blue" alt="npm" /></a>
|
|
10
|
-
<a href="https://github.com/vinkius-labs/vurb.ts/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green" alt="License" /></a>
|
|
11
|
-
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node" />
|
|
12
|
-
</p>
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
> JWT verification middleware for MCP servers built with Vurb.ts. Timing-safe validation with `jose`, JWKS auto-discovery, and self-healing error responses.
|
|
17
|
-
|
|
18
|
-
## Quick Start
|
|
19
|
-
|
|
20
|
-
```typescript
|
|
21
|
-
import { initVurb } from '@vurb/core';
|
|
22
|
-
import { jwtGuard } from '@vurb/jwt';
|
|
23
|
-
|
|
24
|
-
const f = initVurb<AppContext>();
|
|
25
|
-
|
|
26
|
-
const withJwt = jwtGuard({
|
|
27
|
-
secret: process.env.JWT_SECRET!,
|
|
28
|
-
algorithms: ['HS256'],
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
export default f.query('billing.invoices')
|
|
32
|
-
.use(withJwt)
|
|
33
|
-
.handle(async (input, ctx) => {
|
|
34
|
-
// ctx.jwt contains the decoded payload
|
|
35
|
-
return db.invoices.findMany({ where: { tenantId: ctx.jwt.sub } });
|
|
36
|
-
});
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Features
|
|
40
|
-
|
|
41
|
-
| Feature | Description |
|
|
42
|
-
|---------|-------------|
|
|
43
|
-
| **Algorithms** | HS256, RS256, ES256 — all standard algorithms via `jose` |
|
|
44
|
-
| **JWKS** | Auto-discovery from `/.well-known/jwks.json` with key rotation |
|
|
45
|
-
| **Self-Healing** | Expired/invalid tokens return actionable hints to the LLM agent |
|
|
46
|
-
| **Timing-Safe** | Constant-time signature verification |
|
|
47
|
-
| **Zero Config** | Works with Auth0, Clerk, Supabase, Firebase, any OIDC provider |
|
|
48
|
-
|
|
49
|
-
## JWKS Auto-Discovery
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
const withJwt = jwtGuard({
|
|
53
|
-
jwksUri: 'https://auth.example.com/.well-known/jwks.json',
|
|
54
|
-
issuer: 'https://auth.example.com/',
|
|
55
|
-
audience: 'my-mcp-server',
|
|
56
|
-
});
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## Installation
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
npm install @vurb/jwt jose
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Peer Dependencies
|
|
66
|
-
|
|
67
|
-
| Package | Version |
|
|
68
|
-
|---------|---------|
|
|
69
|
-
| `vurb` | `^2.0.0` |
|
|
70
|
-
| `jose` | `^5.0.0` (optional) |
|
|
71
|
-
|
|
72
|
-
## Requirements
|
|
73
|
-
|
|
74
|
-
- **Node.js** ≥ 18.0.0
|
|
75
|
-
- **Vurb.ts** ≥ 2.0.0 (peer dependency)
|
|
76
|
-
|
|
77
|
-
## License
|
|
78
|
-
|
|
79
|
-
[Apache-2.0](https://github.com/vinkius-labs/vurb.ts/blob/main/LICENSE)
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">@vurb/jwt</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>JWT Verification Middleware</strong> — Standards-compliant token validation for Vurb.ts servers
|
|
5
|
+
</p>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<p align="center">
|
|
9
|
+
<a href="https://www.npmjs.com/package/@vurb/jwt"><img src="https://img.shields.io/npm/v/@vurb/jwt?color=blue" alt="npm" /></a>
|
|
10
|
+
<a href="https://github.com/vinkius-labs/vurb.ts/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green" alt="License" /></a>
|
|
11
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node" />
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
> JWT verification middleware for MCP servers built with Vurb.ts. Timing-safe validation with `jose`, JWKS auto-discovery, and self-healing error responses.
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { initVurb } from '@vurb/core';
|
|
22
|
+
import { jwtGuard } from '@vurb/jwt';
|
|
23
|
+
|
|
24
|
+
const f = initVurb<AppContext>();
|
|
25
|
+
|
|
26
|
+
const withJwt = jwtGuard({
|
|
27
|
+
secret: process.env.JWT_SECRET!,
|
|
28
|
+
algorithms: ['HS256'],
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export default f.query('billing.invoices')
|
|
32
|
+
.use(withJwt)
|
|
33
|
+
.handle(async (input, ctx) => {
|
|
34
|
+
// ctx.jwt contains the decoded payload
|
|
35
|
+
return db.invoices.findMany({ where: { tenantId: ctx.jwt.sub } });
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Features
|
|
40
|
+
|
|
41
|
+
| Feature | Description |
|
|
42
|
+
|---------|-------------|
|
|
43
|
+
| **Algorithms** | HS256, RS256, ES256 — all standard algorithms via `jose` |
|
|
44
|
+
| **JWKS** | Auto-discovery from `/.well-known/jwks.json` with key rotation |
|
|
45
|
+
| **Self-Healing** | Expired/invalid tokens return actionable hints to the LLM agent |
|
|
46
|
+
| **Timing-Safe** | Constant-time signature verification |
|
|
47
|
+
| **Zero Config** | Works with Auth0, Clerk, Supabase, Firebase, any OIDC provider |
|
|
48
|
+
|
|
49
|
+
## JWKS Auto-Discovery
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
const withJwt = jwtGuard({
|
|
53
|
+
jwksUri: 'https://auth.example.com/.well-known/jwks.json',
|
|
54
|
+
issuer: 'https://auth.example.com/',
|
|
55
|
+
audience: 'my-mcp-server',
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Installation
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm install @vurb/jwt jose
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Peer Dependencies
|
|
66
|
+
|
|
67
|
+
| Package | Version |
|
|
68
|
+
|---------|---------|
|
|
69
|
+
| `vurb` | `^2.0.0` |
|
|
70
|
+
| `jose` | `^5.0.0` (optional) |
|
|
71
|
+
|
|
72
|
+
## Requirements
|
|
73
|
+
|
|
74
|
+
- **Node.js** ≥ 18.0.0
|
|
75
|
+
- **Vurb.ts** ≥ 2.0.0 (peer dependency)
|
|
76
|
+
|
|
77
|
+
## License
|
|
78
|
+
|
|
79
|
+
[Apache-2.0](https://github.com/vinkius-labs/vurb.ts/blob/main/LICENSE)
|
package/dist/JwtVerifier.d.ts
CHANGED
|
@@ -71,10 +71,11 @@ export interface JwtVerifyResult {
|
|
|
71
71
|
export declare class JwtVerifier {
|
|
72
72
|
private readonly _config;
|
|
73
73
|
private readonly _clockTolerance;
|
|
74
|
-
private
|
|
74
|
+
private _loadPromise;
|
|
75
75
|
private _jwtVerify;
|
|
76
76
|
private _createRemoteJWKSet;
|
|
77
77
|
private _jwks;
|
|
78
|
+
private _importedPublicKey;
|
|
78
79
|
constructor(config: JwtVerifierConfig);
|
|
79
80
|
/**
|
|
80
81
|
* Verify a JWT and return the decoded payload.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtVerifier.d.ts","sourceRoot":"","sources":["../src/JwtVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,MAAM,WAAW,iBAAiB;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,yGAAyG;IACzG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEpC,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEtC,qEAAqE;IACrE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACvB,sCAAsC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,qCAAqC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAGzC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"JwtVerifier.d.ts","sourceRoot":"","sources":["../src/JwtVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,MAAM,WAAW,iBAAiB;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,yGAAyG;IACzG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEpC,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEtC,qEAAqE;IACrE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACvB,sCAAsC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,qCAAqC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAGzC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAAuG;IACzH,OAAO,CAAC,mBAAmB,CAAwC;IACnE,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,kBAAkB,CAAiB;gBAE/B,MAAM,EAAE,iBAAiB;IAUrC;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAKvD;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA8B7D;;;;;OAKG;YACW,eAAe;IAsC7B;;;OAGG;YACW,SAAS;IAYvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0C1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgDvB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAU/C;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAK,GAAG,OAAO;CAKhE"}
|
package/dist/JwtVerifier.js
CHANGED
|
@@ -32,10 +32,11 @@ export class JwtVerifier {
|
|
|
32
32
|
_config;
|
|
33
33
|
_clockTolerance;
|
|
34
34
|
// Lazy-loaded jose references
|
|
35
|
-
|
|
35
|
+
_loadPromise = null;
|
|
36
36
|
_jwtVerify = null;
|
|
37
37
|
_createRemoteJWKSet = null;
|
|
38
38
|
_jwks = null;
|
|
39
|
+
_importedPublicKey = null;
|
|
39
40
|
constructor(config) {
|
|
40
41
|
if (!config.secret && !config.jwksUri && !config.publicKey) {
|
|
41
42
|
throw new Error('JwtVerifier requires at least one of: secret, jwksUri, publicKey');
|
|
@@ -93,9 +94,10 @@ export class JwtVerifier {
|
|
|
93
94
|
* @internal
|
|
94
95
|
*/
|
|
95
96
|
async _verifyWithJose(token) {
|
|
96
|
-
if (!this.
|
|
97
|
-
|
|
97
|
+
if (!this._loadPromise) {
|
|
98
|
+
this._loadPromise = this._loadJose();
|
|
98
99
|
}
|
|
100
|
+
await this._loadPromise;
|
|
99
101
|
if (!this._jwtVerify)
|
|
100
102
|
return undefined;
|
|
101
103
|
const options = {};
|
|
@@ -112,9 +114,12 @@ export class JwtVerifier {
|
|
|
112
114
|
key = this._jwks;
|
|
113
115
|
}
|
|
114
116
|
else if (this._config.publicKey) {
|
|
115
|
-
// jose importSPKI for PEM keys
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
// jose importSPKI for PEM keys — cached after first import
|
|
118
|
+
if (!this._importedPublicKey) {
|
|
119
|
+
const jose = await import('jose');
|
|
120
|
+
this._importedPublicKey = await jose.importSPKI(this._config.publicKey, this._config.algorithm ?? 'RS256');
|
|
121
|
+
}
|
|
122
|
+
key = this._importedPublicKey;
|
|
118
123
|
}
|
|
119
124
|
else if (this._config.secret) {
|
|
120
125
|
const encoder = new TextEncoder();
|
|
@@ -130,7 +135,6 @@ export class JwtVerifier {
|
|
|
130
135
|
* @internal
|
|
131
136
|
*/
|
|
132
137
|
async _loadJose() {
|
|
133
|
-
this._joseLoaded = true;
|
|
134
138
|
try {
|
|
135
139
|
const jose = await import('jose');
|
|
136
140
|
this._jwtVerify = jose.jwtVerify;
|
package/dist/JwtVerifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtVerifier.js","sourceRoot":"","sources":["../src/JwtVerifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AA4DtC,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,MAAM,OAAO,WAAW;IACH,OAAO,CAAoB;IAC3B,eAAe,CAAS;IAEzC,8BAA8B;IACtB,
|
|
1
|
+
{"version":3,"file":"JwtVerifier.js","sourceRoot":"","sources":["../src/JwtVerifier.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vurb/jwt",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.6",
|
|
4
4
|
"description": "JWT verification middleware for MCP servers built with vurb. Standards-compliant token validation with jose, JWKS support, and self-healing error responses.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -59,4 +59,4 @@
|
|
|
59
59
|
"@vurb/core": ">=3.0.0"
|
|
60
60
|
},
|
|
61
61
|
"license": "Apache-2.0"
|
|
62
|
-
}
|
|
62
|
+
}
|