initial commit
This commit is contained in:
34
server/node_modules/jose/dist/browser/runtime/fetch_jwks.js
generated
vendored
Normal file
34
server/node_modules/jose/dist/browser/runtime/fetch_jwks.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
import { JOSEError, JWKSTimeout } from '../util/errors.js';
|
||||
const fetchJwks = async (url, timeout, options) => {
|
||||
let controller;
|
||||
let id;
|
||||
let timedOut = false;
|
||||
if (typeof AbortController === 'function') {
|
||||
controller = new AbortController();
|
||||
id = setTimeout(() => {
|
||||
timedOut = true;
|
||||
controller.abort();
|
||||
}, timeout);
|
||||
}
|
||||
const response = await fetch(url.href, {
|
||||
signal: controller ? controller.signal : undefined,
|
||||
redirect: 'manual',
|
||||
headers: options.headers,
|
||||
}).catch((err) => {
|
||||
if (timedOut)
|
||||
throw new JWKSTimeout();
|
||||
throw err;
|
||||
});
|
||||
if (id !== undefined)
|
||||
clearTimeout(id);
|
||||
if (response.status !== 200) {
|
||||
throw new JOSEError('Expected 200 OK from the JSON Web Key Set HTTP response');
|
||||
}
|
||||
try {
|
||||
return await response.json();
|
||||
}
|
||||
catch (_a) {
|
||||
throw new JOSEError('Failed to parse the JSON Web Key Set HTTP response as JSON');
|
||||
}
|
||||
};
|
||||
export default fetchJwks;
|
||||
Reference in New Issue
Block a user