Skip to main content

Class: OAuthClientManager

Defined in: src/auth/oauth/oauth-client.ts:277

OAuth client manager.

Remarks

Manages OAuth client registration, validation, and lookup. Clients are stored in Redis for scalability.

Example

const clientManager = new OAuthClientManager({
redis,
logger,
});

// Register a new client
const { client, clientSecret } = await clientManager.registerClient({
clientName: 'My App',
clientType: 'public',
redirectUris: ['https://myapp.com/callback'],
});

// Validate client
const valid = await clientManager.validateClient(clientId, clientSecret);

Constructors

new OAuthClientManager()

new OAuthClientManager(options): OAuthClientManager

Defined in: src/auth/oauth/oauth-client.ts:287

Creates a new OAuthClientManager.

Parameters

options

OAuthClientManagerOptions

Manager options

Returns

OAuthClientManager

Methods

deactivateClient()

deactivateClient(clientId): Promise<void>

Defined in: src/auth/oauth/oauth-client.ts:440

Deactivates a client.

Parameters

clientId

string

Client identifier

Returns

Promise<void>


getClient()

getClient(clientId): Promise<null | OAuthClient>

Defined in: src/auth/oauth/oauth-client.ts:362

Gets a client by ID.

Parameters

clientId

string

Client identifier

Returns

Promise<null | OAuthClient>

Client or null if not found


registerClient()

registerClient(request): Promise<ClientRegistrationResponse>

Defined in: src/auth/oauth/oauth-client.ts:299

Registers a new OAuth client.

Parameters

request

ClientRegistrationRequest

Registration request

Returns

Promise<ClientRegistrationResponse>

Registered client and secret (if confidential)


rotateClientSecret()

rotateClientSecret(clientId): Promise<string>

Defined in: src/auth/oauth/oauth-client.ts:463

Rotates client secret.

Parameters

clientId

string

Client identifier

Returns

Promise<string>

New client secret

Throws

OAuthError if client is public or not found


validateClient()

validateClient(clientId, clientSecret?): Promise<boolean>

Defined in: src/auth/oauth/oauth-client.ts:380

Validates client credentials.

Parameters

clientId

string

Client identifier

clientSecret?

string

Client secret (optional for public clients)

Returns

Promise<boolean>

True if credentials are valid


validateRedirectUri()

validateRedirectUri(clientId, redirectUri): Promise<boolean>

Defined in: src/auth/oauth/oauth-client.ts:408

Validates a redirect URI for a client.

Parameters

clientId

string

Client identifier

redirectUri

string

Redirect URI to validate

Returns

Promise<boolean>

True if URI is registered for client


validateScopes()

validateScopes(clientId, scopes): Promise<string[]>

Defined in: src/auth/oauth/oauth-client.ts:425

Validates requested scopes for a client.

Parameters

clientId

string

Client identifier

scopes

readonly string[]

Requested scopes

Returns

Promise<string[]>

Array of allowed scopes (may be subset of requested)