CommunitySolidServer/docs/classes/IdentityProviderFactory.html
2021-10-15 09:28:28 +00:00

39 lines
35 KiB
HTML

<!DOCTYPE html><html class="default no-js"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>IdentityProviderFactory | Community Solid Server - v2.0.0</title><meta name="description" content="Documentation for Community Solid Server - v2.0.0"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Community Solid Server - v2.0.0</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">Community Solid Server - v2.0.0</a></li><li><a href="IdentityProviderFactory.html">IdentityProviderFactory</a></li></ul><h1>Class IdentityProviderFactory</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
<p>Creates an OIDC Provider based on the provided configuration and parameters.
The provider will be cached and returned on subsequent calls.
Cookie and JWT keys will be stored in an internal storage so they can be re-used over multiple threads.
Necessary claims for Solid OIDC interactions will be added.
Routes will be updated based on the <code>baseUrl</code> and <code>idpPath</code>.</p>
</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">IdentityProviderFactory</span></li></ul></section><section class="tsd-panel"><h3>Implements</h3><ul class="tsd-hierarchy"><li><a href="../interfaces/ProviderFactory.html" class="tsd-signature-type" data-tsd-kind="Interface">ProviderFactory</a></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="IdentityProviderFactory.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-private tsd-is-private-protected"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#adapterFactory" class="tsd-kind-icon">adapter<wbr/>Factory</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#baseUrl" class="tsd-kind-icon">base<wbr/>Url</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#config" class="tsd-kind-icon">config</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#errorHandler" class="tsd-kind-icon">error<wbr/>Handler</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#idpPath" class="tsd-kind-icon">idp<wbr/>Path</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#provider" class="tsd-kind-icon">provider</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#responseWriter" class="tsd-kind-icon">response<wbr/>Writer</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#storage" class="tsd-kind-icon">storage</a></li></ul></section><section class="tsd-index-section "><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#configureClaims" class="tsd-kind-icon">configure<wbr/>Claims</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#configureErrors" class="tsd-kind-icon">configure<wbr/>Errors</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#configureRoutes" class="tsd-kind-icon">configure<wbr/>Routes</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#createProvider" class="tsd-kind-icon">create<wbr/>Provider</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#createRoute" class="tsd-kind-icon">create<wbr/>Route</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#generateCookieKeys" class="tsd-kind-icon">generate<wbr/>Cookie<wbr/>Keys</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#generateJwks" class="tsd-kind-icon">generate<wbr/>Jwks</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="IdentityProviderFactory.html#getProvider" class="tsd-kind-icon">get<wbr/>Provider</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#initConfig" class="tsd-kind-icon">init<wbr/>Config</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#isAccessToken" class="tsd-kind-icon">is<wbr/>Access<wbr/>Token</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class"><a name="constructor" class="tsd-anchor"></a><h3>constructor</h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">new <wbr/>Identity<wbr/>Provider<wbr/>Factory<span class="tsd-signature-symbol">(</span>config<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Configuration</span>, args<span class="tsd-signature-symbol">: </span><a href="../interfaces/IdentityProviderFactoryArgs.html" class="tsd-signature-type" data-tsd-kind="Interface">IdentityProviderFactoryArgs</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="IdentityProviderFactory.html" class="tsd-signature-type" data-tsd-kind="Class">IdentityProviderFactory</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L76">src/identity/configuration/IdentityProviderFactory.ts:76</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>config: <span class="tsd-signature-type">Configuration</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>JSON config for the OIDC library @range {json}</p>
</div></div></li><li><h5>args: <a href="../interfaces/IdentityProviderFactoryArgs.html" class="tsd-signature-type" data-tsd-kind="Interface">IdentityProviderFactoryArgs</a></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>Remaining parameters required for the factory.</p>
</div></div></li></ul><h4 class="tsd-returns-title">Returns <a href="IdentityProviderFactory.html" class="tsd-signature-type" data-tsd-kind="Class">IdentityProviderFactory</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-private tsd-is-private-protected"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="adapterFactory" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> adapter<wbr/>Factory</h3><div class="tsd-signature tsd-kind-icon">adapter<wbr/>Factory<span class="tsd-signature-symbol">:</span> <a href="../interfaces/AdapterFactory.html" class="tsd-signature-type" data-tsd-kind="Interface">AdapterFactory</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L63">src/identity/configuration/IdentityProviderFactory.ts:63</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="baseUrl" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> base<wbr/>Url</h3><div class="tsd-signature tsd-kind-icon">base<wbr/>Url<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L64">src/identity/configuration/IdentityProviderFactory.ts:64</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="config" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> config</h3><div class="tsd-signature tsd-kind-icon">config<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Configuration</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L62">src/identity/configuration/IdentityProviderFactory.ts:62</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="errorHandler" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> error<wbr/>Handler</h3><div class="tsd-signature tsd-kind-icon">error<wbr/>Handler<span class="tsd-signature-symbol">:</span> <a href="ErrorHandler.html" class="tsd-signature-type" data-tsd-kind="Class">ErrorHandler</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L67">src/identity/configuration/IdentityProviderFactory.ts:67</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="idpPath" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> idp<wbr/>Path</h3><div class="tsd-signature tsd-kind-icon">idp<wbr/>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L65">src/identity/configuration/IdentityProviderFactory.ts:65</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="provider" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagOptional">Optional</span> provider</h3><div class="tsd-signature tsd-kind-icon">provider<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">Provider</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L70">src/identity/configuration/IdentityProviderFactory.ts:70</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="responseWriter" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> response<wbr/>Writer</h3><div class="tsd-signature tsd-kind-icon">response<wbr/>Writer<span class="tsd-signature-symbol">:</span> <a href="ResponseWriter.html" class="tsd-signature-type" data-tsd-kind="Class">ResponseWriter</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L68">src/identity/configuration/IdentityProviderFactory.ts:68</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a name="storage" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> storage</h3><div class="tsd-signature tsd-kind-icon">storage<span class="tsd-signature-symbol">:</span> <a href="../interfaces/KeyValueStorage.html" class="tsd-signature-type" data-tsd-kind="Interface">KeyValueStorage</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L66">src/identity/configuration/IdentityProviderFactory.ts:66</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group "><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="configureClaims" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> configure<wbr/>Claims</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">configure<wbr/>Claims<span class="tsd-signature-symbol">(</span>config<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L189">src/identity/configuration/IdentityProviderFactory.ts:189</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Adds the necessary claims the to id token and access token based on the Solid OIDC spec.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>config: <span class="tsd-signature-type">Configuration</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="configureErrors" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> configure<wbr/>Errors</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">configure<wbr/>Errors<span class="tsd-signature-symbol">(</span>config<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L250">src/identity/configuration/IdentityProviderFactory.ts:250</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Pipes library errors to the provided ErrorHandler and ResponseWriter.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>config: <span class="tsd-signature-type">Configuration</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="configureRoutes" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> configure<wbr/>Routes</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">configure<wbr/>Routes<span class="tsd-signature-symbol">(</span>config<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L223">src/identity/configuration/IdentityProviderFactory.ts:223</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Sets up all the IDP routes relative to the IDP path.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>config: <span class="tsd-signature-type">Configuration</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="createProvider" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> create<wbr/>Provider</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">create<wbr/>Provider<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Provider</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L95">src/identity/configuration/IdentityProviderFactory.ts:95</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Creates a Provider by building a Configuration using all the stored parameters.</p>
</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Provider</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="createRoute" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> create<wbr/>Route</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">create<wbr/>Route<span class="tsd-signature-symbol">(</span>relative<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L216">src/identity/configuration/IdentityProviderFactory.ts:216</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Creates the route string as required by the <code>oidc-provider</code> library.
In case base URL is <code>http://test.com/foo/</code>, <code>idpPath</code> is <code>/idp</code> and <code>relative</code> is <code>device/auth</code>,
this would result in <code>/foo/idp/device/auth</code>.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>relative: <span class="tsd-signature-type">string</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="generateCookieKeys" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> generate<wbr/>Cookie<wbr/>Keys</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">generate<wbr/>Cookie<wbr/>Keys<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L166">src/identity/configuration/IdentityProviderFactory.ts:166</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Generates a cookie secret to be used for cookie signing.
The key will be cached so subsequent calls return the same key.</p>
</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="generateJwks" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> generate<wbr/>Jwks</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">generate<wbr/>Jwks<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">{ </span>keys<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">JWK</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L143">src/identity/configuration/IdentityProviderFactory.ts:143</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Generates a JWKS using a single RS256 JWK..
The JWKS will be cached so subsequent calls return the same key.</p>
</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">{ </span>keys<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">JWK</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a name="getProvider" class="tsd-anchor"></a><h3>get<wbr/>Provider</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">get<wbr/>Provider<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Provider</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ProviderFactory.html">ProviderFactory</a>.<a href="../interfaces/ProviderFactory.html#getProvider">getProvider</a></p><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L84">src/identity/configuration/IdentityProviderFactory.ts:84</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Gets a provider from the factory.
Multiple calls to this function should return providers that produce the same results.
This is mostly relevant for signing keys.</p>
</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Provider</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="initConfig" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> init<wbr/>Config</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">init<wbr/>Config<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L117">src/identity/configuration/IdentityProviderFactory.ts:117</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Creates a configuration by copying the internal configuration
and adding the adapter, default audience and jwks/cookie keys.</p>
</div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a name="isAccessToken" class="tsd-anchor"></a><h3><span class="tsd-flag ts-flagPrivate">Private</span> is<wbr/>Access<wbr/>Token</h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">is<wbr/>Access<wbr/>Token<span class="tsd-signature-symbol">(</span>token<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">token</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">AccessToken</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/solid/community-server/blob/216788e/src/identity/configuration/IdentityProviderFactory.ts#L182">src/identity/configuration/IdentityProviderFactory.ts:182</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Checks if the given token is an access token.
The AccessToken interface is not exported so we have to access it like this.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>token: <span class="tsd-signature-type">any</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">token</span><span class="tsd-signature-symbol"> is </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">AccessToken</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="IdentityProviderFactory.html" class="tsd-kind-icon">Identity<wbr/>Provider<wbr/>Factory</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="IdentityProviderFactory.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#adapterFactory" class="tsd-kind-icon">adapter<wbr/>Factory</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#baseUrl" class="tsd-kind-icon">base<wbr/>Url</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#config" class="tsd-kind-icon">config</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#errorHandler" class="tsd-kind-icon">error<wbr/>Handler</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#idpPath" class="tsd-kind-icon">idp<wbr/>Path</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#provider" class="tsd-kind-icon">provider</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#responseWriter" class="tsd-kind-icon">response<wbr/>Writer</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#storage" class="tsd-kind-icon">storage</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#configureClaims" class="tsd-kind-icon">configure<wbr/>Claims</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#configureErrors" class="tsd-kind-icon">configure<wbr/>Errors</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#configureRoutes" class="tsd-kind-icon">configure<wbr/>Routes</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#createProvider" class="tsd-kind-icon">create<wbr/>Provider</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#createRoute" class="tsd-kind-icon">create<wbr/>Route</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#generateCookieKeys" class="tsd-kind-icon">generate<wbr/>Cookie<wbr/>Keys</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#generateJwks" class="tsd-kind-icon">generate<wbr/>Jwks</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="IdentityProviderFactory.html#getProvider" class="tsd-kind-icon">get<wbr/>Provider</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#initConfig" class="tsd-kind-icon">init<wbr/>Config</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="IdentityProviderFactory.html#isAccessToken" class="tsd-kind-icon">is<wbr/>Access<wbr/>Token</a></li></ul></li></ul></nav></div></div></div><footer class=""><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li><li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="overlay"></div><script src="../assets/main.js"></script></body></html>