@hearth-auth/sdk 4.5.10 → 4.5.12
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/dist/jwks-client.d.ts +9 -2
- package/dist/jwks-client.js +39 -10
- package/dist/jwks-client.js.map +1 -1
- package/package.json +1 -1
package/dist/jwks-client.d.ts
CHANGED
|
@@ -86,7 +86,8 @@ export declare class JwksClient {
|
|
|
86
86
|
* @throws {@link TokenInvalidError} when the signature or structure is invalid.
|
|
87
87
|
* @throws {@link TokenIssuerError} when the issuer does not match.
|
|
88
88
|
* @throws {@link TokenAudienceError} when the audience does not match.
|
|
89
|
-
* @throws {@link JWKSFetchError} when the JWKS endpoint cannot be reached
|
|
89
|
+
* @throws {@link JWKSFetchError} when the JWKS endpoint cannot be reached, answers
|
|
90
|
+
* with an error status, or returns an invalid document (never for an unknown `kid`).
|
|
90
91
|
* @throws {@link ConfigurationError} when no expected issuer is configured.
|
|
91
92
|
*/
|
|
92
93
|
verify(token: string, options?: VerifyOptions): Promise<Claims>;
|
|
@@ -95,6 +96,12 @@ export declare class JwksClient {
|
|
|
95
96
|
* `issuer` and `audience` are the values the check actually used.
|
|
96
97
|
*/
|
|
97
98
|
private mapJoseError;
|
|
98
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* Fetch the current JWKS keys from the endpoint.
|
|
101
|
+
*
|
|
102
|
+
* @throws {@link JWKSFetchError} when the endpoint is unreachable or times
|
|
103
|
+
* out, answers with an error status, or returns a body that is not a JWKS
|
|
104
|
+
* document. A network or parse failure is kept as the error's `cause`.
|
|
105
|
+
*/
|
|
99
106
|
fetchKeys(): Promise<JsonWebKey[]>;
|
|
100
107
|
}
|
package/dist/jwks-client.js
CHANGED
|
@@ -36,9 +36,15 @@ export class JwksClient {
|
|
|
36
36
|
return this._cache.keySet;
|
|
37
37
|
}
|
|
38
38
|
const keys = await this.fetchKeys();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
let keySet;
|
|
40
|
+
try {
|
|
41
|
+
keySet = createLocalJWKSet({
|
|
42
|
+
keys: keys,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
throw new JWKSFetchError("JWKS response is not a valid key set", err);
|
|
47
|
+
}
|
|
42
48
|
this._cache = { keySet: keySet, fetchedAt: now };
|
|
43
49
|
return keySet;
|
|
44
50
|
}
|
|
@@ -63,7 +69,8 @@ export class JwksClient {
|
|
|
63
69
|
* @throws {@link TokenInvalidError} when the signature or structure is invalid.
|
|
64
70
|
* @throws {@link TokenIssuerError} when the issuer does not match.
|
|
65
71
|
* @throws {@link TokenAudienceError} when the audience does not match.
|
|
66
|
-
* @throws {@link JWKSFetchError} when the JWKS endpoint cannot be reached
|
|
72
|
+
* @throws {@link JWKSFetchError} when the JWKS endpoint cannot be reached, answers
|
|
73
|
+
* with an error status, or returns an invalid document (never for an unknown `kid`).
|
|
67
74
|
* @throws {@link ConfigurationError} when no expected issuer is configured.
|
|
68
75
|
*/
|
|
69
76
|
async verify(token, options) {
|
|
@@ -161,16 +168,38 @@ export class JwksClient {
|
|
|
161
168
|
}
|
|
162
169
|
throw new TokenInvalidError("Unknown token verification error");
|
|
163
170
|
}
|
|
164
|
-
/**
|
|
171
|
+
/**
|
|
172
|
+
* Fetch the current JWKS keys from the endpoint.
|
|
173
|
+
*
|
|
174
|
+
* @throws {@link JWKSFetchError} when the endpoint is unreachable or times
|
|
175
|
+
* out, answers with an error status, or returns a body that is not a JWKS
|
|
176
|
+
* document. A network or parse failure is kept as the error's `cause`.
|
|
177
|
+
*/
|
|
165
178
|
async fetchKeys() {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
179
|
+
let resp;
|
|
180
|
+
try {
|
|
181
|
+
resp = await fetch(this.jwksUri, {
|
|
182
|
+
signal: AbortSignal.timeout(this.httpTimeout),
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
throw new JWKSFetchError(`JWKS endpoint unreachable: ${this.jwksUri}`, err);
|
|
187
|
+
}
|
|
169
188
|
if (!resp.ok) {
|
|
170
189
|
throw new JWKSFetchError(`JWKS fetch failed with HTTP ${resp.status}`);
|
|
171
190
|
}
|
|
172
|
-
|
|
173
|
-
|
|
191
|
+
let doc;
|
|
192
|
+
try {
|
|
193
|
+
doc = await resp.json();
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
throw new JWKSFetchError("JWKS response is not valid JSON", err);
|
|
197
|
+
}
|
|
198
|
+
const keys = doc?.keys;
|
|
199
|
+
if (!Array.isArray(keys)) {
|
|
200
|
+
throw new JWKSFetchError('JWKS response is missing the "keys" array');
|
|
201
|
+
}
|
|
202
|
+
return keys;
|
|
174
203
|
}
|
|
175
204
|
}
|
|
176
205
|
//# sourceMappingURL=jwks-client.js.map
|
package/dist/jwks-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwks-client.js","sourceRoot":"","sources":["../src/jwks-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AA8CrB;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAIzC;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACJ,OAAO,CAAS;IACxB,MAAM,CAAqB;IAC3B,QAAQ,CAAoB;IAC5B,GAAG,CAAqB;IACxB,WAAW,CAAS;IAC7B,oDAAoD;IAC5C,MAAM,GAAyD,IAAI,CAAC;IAE5E,YAAY,MAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC;QACpD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,
|
|
1
|
+
{"version":3,"file":"jwks-client.js","sourceRoot":"","sources":["../src/jwks-client.ts"],"names":[],"mappings":"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"}
|