@atproto/oauth-client
Version:
OAuth client for ATPROTO PDS. This package serves as common base for environment-specific implementations (NodeJS, Browser, React-Native).
71 lines • 7.84 kB
TypeScript
import { IdentityResolver, ResolvedIdentity, ResolveIdentityOptions } from '@atproto-labs/identity-resolver';
import { OAuthAuthorizationServerMetadata } from '@atproto/oauth-types';
import { GetCachedOptions, OAuthAuthorizationServerMetadataResolver } from './oauth-authorization-server-metadata-resolver.js';
import { OAuthProtectedResourceMetadataResolver } from './oauth-protected-resource-metadata-resolver.js';
export type { GetCachedOptions };
export type ResolveOAuthOptions = GetCachedOptions & ResolveIdentityOptions;
export declare class OAuthResolver {
readonly identityResolver: IdentityResolver;
readonly protectedResourceMetadataResolver: OAuthProtectedResourceMetadataResolver;
readonly authorizationServerMetadataResolver: OAuthAuthorizationServerMetadataResolver;
constructor(identityResolver: IdentityResolver, protectedResourceMetadataResolver: OAuthProtectedResourceMetadataResolver, authorizationServerMetadataResolver: OAuthAuthorizationServerMetadataResolver);
/**
* @param input - A handle, DID, PDS URL or Entryway URL
*/
resolve(input: string, options?: ResolveOAuthOptions): Promise<{
identity?: ResolvedIdentity;
metadata: OAuthAuthorizationServerMetadata;
}>;
/**
* @note this method can be used to verify if a particular uri supports OAuth
* based sign-in (for compatibility with legacy implementation).
*/
resolveFromService(input: string, options?: ResolveOAuthOptions): Promise<{
metadata: OAuthAuthorizationServerMetadata;
}>;
resolveFromIdentity(input: string, options?: ResolveOAuthOptions): Promise<{
identity: ResolvedIdentity;
metadata: OAuthAuthorizationServerMetadata;
}>;
resolveIdentity(input: string, options?: ResolveIdentityOptions): Promise<ResolvedIdentity>;
getAuthorizationServerMetadata(issuer: string, options?: GetCachedOptions): Promise<OAuthAuthorizationServerMetadata>;
getResourceServerMetadata(pdsUrl: string | URL, options?: GetCachedOptions): Promise<{
issuer: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}`;
authorization_endpoint: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}`;
token_endpoint: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}`;
jwks_uri?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
claims_supported?: string[] | undefined;
claims_locales_supported?: string[] | undefined;
claims_parameter_supported?: boolean | undefined;
request_parameter_supported?: boolean | undefined;
request_uri_parameter_supported?: boolean | undefined;
require_request_uri_registration?: boolean | undefined;
scopes_supported?: string[] | undefined;
subject_types_supported?: string[] | undefined;
response_types_supported?: string[] | undefined;
response_modes_supported?: string[] | undefined;
grant_types_supported?: string[] | undefined;
code_challenge_methods_supported?: ("S256" | "plain")[] | undefined;
ui_locales_supported?: string[] | undefined;
id_token_signing_alg_values_supported?: string[] | undefined;
display_values_supported?: string[] | undefined;
request_object_signing_alg_values_supported?: string[] | undefined;
authorization_response_iss_parameter_supported?: boolean | undefined;
authorization_details_types_supported?: string[] | undefined;
request_object_encryption_alg_values_supported?: string[] | undefined;
request_object_encryption_enc_values_supported?: string[] | undefined;
token_endpoint_auth_methods_supported?: string[] | undefined;
token_endpoint_auth_signing_alg_values_supported?: string[] | undefined;
revocation_endpoint?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
introspection_endpoint?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
pushed_authorization_request_endpoint?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
require_pushed_authorization_requests?: boolean | undefined;
userinfo_endpoint?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
end_session_endpoint?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
registration_endpoint?: `http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | undefined;
dpop_signing_alg_values_supported?: string[] | undefined;
protected_resources?: (`http://[::1]${string}` | "http://localhost" | `http://localhost#${string}` | `http://localhost?${string}` | `http://localhost/${string}` | `http://localhost:${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}`)[] | undefined;
client_id_metadata_document_supported?: boolean | undefined;
}>;
}
//# sourceMappingURL=oauth-resolver.d.ts.map