Skip to main content

ClientRegistry

@webda/oauth


Class: ClientRegistry

Defined in: packages/oauth/src/clients.ts:176

Resolve clients: static configuration, then Client ID Metadata Documents

Constructors​

Constructor​

new ClientRegistry(params, fetcher?, resolver?): ClientRegistry

Defined in: packages/oauth/src/clients.ts:187

Parameters​

params​

OAuthServerParameters

server parameters

fetcher?​

{(input, init?): Promise<Response>; (input, init?): Promise<Response>; }

fetch implementation

resolver?​

(host) => Promise<string[]>

DNS resolver

Returns​

ClientRegistry

Properties​

cache​

protected cache: Map<string, { client?: OAuthClient; until: number; }>

Defined in: packages/oauth/src/clients.ts:178

Metadata documents by client_id, in least recently used order


fetcher​

protected fetcher: {(input, init?): Promise<Response>; (input, init?): Promise<Response>; } = fetch

Defined in: packages/oauth/src/clients.ts:189

fetch implementation

Call Signature​

(input, init?): Promise<Response>

MDN Reference

Parameters​
input​

RequestInfo | URL

init?​

RequestInit

Returns​

Promise<Response>

Call Signature​

(input, init?): Promise<Response>

MDN Reference

Parameters​
input​

string | Request | URL

init?​

RequestInit

Returns​

Promise<Response>


inflight​

protected inflight: Map<string, Promise<OAuthClient | undefined>>

Defined in: packages/oauth/src/clients.ts:180

Metadata document fetches in progress


params​

protected params: OAuthServerParameters

Defined in: packages/oauth/src/clients.ts:188

server parameters


resolver​

protected resolver: (host) => Promise<string[]>

Defined in: packages/oauth/src/clients.ts:190

DNS resolver

Parameters​

host​

string

Returns​

Promise<string[]>

Methods​

fetchDocument()​

protected fetchDocument(url): Promise<OAuthClient | undefined>

Defined in: packages/oauth/src/clients.ts:277

Parameters​

url​

string

metadata document URL

Returns​

Promise<OAuthClient | undefined>

the client


get()​

get(clientId): Promise<OAuthClient | undefined>

Defined in: packages/oauth/src/clients.ts:198

Parameters​

clientId​

string

client_id

Returns​

Promise<OAuthClient | undefined>

the client, undefined when unknown or invalid


getRegistered()​

protected getRegistered(clientId): Promise<OAuthClient | undefined>

Defined in: packages/oauth/src/clients.ts:233

Parameters​

clientId​

string

dcr_ client_id

Returns​

Promise<OAuthClient | undefined>

the registered client, undefined when unknown or expired


load()​

protected load(clientId): Promise<OAuthClient | undefined>

Defined in: packages/oauth/src/clients.ts:256

Fetch a metadata document and cache the result

Parameters​

clientId​

string

metadata document URL

Returns​

Promise<OAuthClient | undefined>

the client


matchRedirect()​

matchRedirect(client, uri): boolean

Defined in: packages/oauth/src/clients.ts:357

Parameters​

client​

OAuthClient

client

uri​

string

requested redirect_uri

Returns​

boolean

true when allowed: exact match, or loopback http with any port and identical path


readLimited()​

protected readLimited(res): Promise<string | undefined>

Defined in: packages/oauth/src/clients.ts:334

Read the body, giving up as soon as it exceeds the maximum document size

Parameters​

res​

Response

response

Returns​

Promise<string | undefined>

the body, undefined when too large