Prefix client metadata + info with OAuth

This commit is contained in:
Justin Spahr-Summers 2025-02-11 14:17:02 +00:00
commit 4c87fb50ab
No known key found for this signature in database

View file

@ -45,7 +45,7 @@ export const OAuthTokensSchema = z
/**
* Client metadata schema according to RFC 7591 OAuth 2.0 Dynamic Client Registration
*/
export const ClientMetadataSchema = z.object({
export const OAuthClientMetadataSchema = z.object({
redirect_uris: z.array(z.string()),
token_endpoint_auth_method: z.string().optional(),
grant_types: z.array(z.string()).optional(),
@ -66,18 +66,18 @@ export const ClientMetadataSchema = z.object({
/**
* Client information response schema according to RFC 7591
*/
export const ClientInformationSchema = z.object({
export const OAuthClientInformationSchema = z.object({
client_id: z.string(),
client_secret: z.string().optional(),
client_id_issued_at: z.number().optional(),
client_secret_expires_at: z.number().optional(),
}).merge(ClientMetadataSchema);
}).merge(OAuthClientMetadataSchema);
export type OAuthMetadata = z.infer<typeof OAuthMetadataSchema>;
export type OAuthTokens = z.infer<typeof OAuthTokensSchema>;
export type ClientMetadata = z.infer<typeof ClientMetadataSchema>;
export type ClientInformation = z.infer<typeof ClientInformationSchema>;
export type OAuthClientMetadata = z.infer<typeof OAuthClientMetadataSchema>;
export type OAuthClientInformation = z.infer<typeof OAuthClientInformationSchema>;
/**
* Looks up RFC 8414 OAuth 2.0 Authorization Server Metadata.
@ -273,9 +273,9 @@ export async function registerClient(
clientMetadata,
}: {
metadata?: OAuthMetadata;
clientMetadata: ClientMetadata;
clientMetadata: OAuthClientMetadata;
},
): Promise<ClientInformation> {
): Promise<OAuthClientInformation> {
let registrationUrl: URL;
if (metadata) {
@ -300,5 +300,5 @@ export async function registerClient(
throw new Error(`Dynamic client registration failed: HTTP ${response.status}`);
}
return ClientInformationSchema.parse(await response.json());
return OAuthClientInformationSchema.parse(await response.json());
}