diff --git a/id.jsonld b/id.jsonld new file mode 100644 index 0000000..1390baa --- /dev/null +++ b/id.jsonld @@ -0,0 +1,11 @@ +{ + "token_endpoint_auth_method": "none", + "client_id": "http://localhost:8080/id.jsonld", + "redirect_uris": [ + "http://localhost:8080/callback.html" + ], + "response_types": [ + "code" + ], + "@context": "https://www.w3.org/ns/solid/oidc-context.jsonld" +} diff --git a/index.html b/index.html index 9595a13..0b998be 100644 --- a/index.html +++ b/index.html @@ -19,6 +19,7 @@ CachingAuthorizationServerProvider, CachingClientProvider, CachingIssuerProvider, + // ClientIdClientProvider, DPoPTokenProvider, DynamicRegistrationClientProvider, ReactiveFetchManager, @@ -34,6 +35,7 @@ const cachingASProvider = new CachingAuthorizationServerProvider(asProvider) const callbackUri = new URL("/callback.html", location.href).toString() const clientProvider = new DynamicRegistrationClientProvider + // const clientProvider = new ClientIdClientProvider(new URL("./id.jsonld", location.href)) const cachingClientProvider = new CachingClientProvider(clientProvider) const dPoPTokenProvider = new DPoPTokenProvider(callbackUri, ui, cachingASProvider, cachingClientProvider) diff --git a/src/ClientIdClientProvider.ts b/src/ClientIdClientProvider.ts new file mode 100644 index 0000000..2f98827 --- /dev/null +++ b/src/ClientIdClientProvider.ts @@ -0,0 +1,12 @@ +import type { ClientProvider } from "./ClientProvider.js" +import * as oauth from "oauth4webapi" + +export class ClientIdClientProvider implements ClientProvider { + constructor(private clientIdDocUri: URL) { + } + + async getClient(_: oauth.AuthorizationServer, __: string, signal: AbortSignal): Promise { + const response = await fetch(this.clientIdDocUri, {signal}) + return await response.json() + } +} diff --git a/src/mod.ts b/src/mod.ts index 5441d6c..851b4d7 100644 --- a/src/mod.ts +++ b/src/mod.ts @@ -21,3 +21,4 @@ export * from "./CachingAuthorizationServerProvider.js" export * from "./ClientProvider.js" export * from "./DynamicRegistrationClientProvider.js" export * from "./CachingClientProvider.js" +export * from "./ClientIdClientProvider.js"