Skip to content

Commit 95bbd60

Browse files
committed
Add zod parsing for OAuthMetadataSchema and OAuthTokensSchema
1 parent 96ba6fd commit 95bbd60

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

client/src/lib/auth.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,23 @@ export async function discoverOAuthMetadata(
2626

2727
if (response.ok) {
2828
const metadata = await response.json();
29-
return {
29+
const validatedMetadata = OAuthMetadataSchema.parse({
3030
authorization_endpoint: metadata.authorization_endpoint,
3131
token_endpoint: metadata.token_endpoint,
32-
};
32+
});
33+
return validatedMetadata;
3334
}
3435
} catch (error) {
3536
console.warn("OAuth metadata discovery failed:", error);
3637
}
3738

3839
// Fall back to default endpoints
3940
const baseUrl = new URL(serverUrl);
40-
return {
41+
const defaultMetadata = {
4142
authorization_endpoint: new URL("/authorize", baseUrl).toString(),
4243
token_endpoint: new URL("/token", baseUrl).toString(),
4344
};
45+
return OAuthMetadataSchema.parse(defaultMetadata);
4446
}
4547

4648
export async function startOAuthFlow(serverUrl: string): Promise<string> {
@@ -98,7 +100,8 @@ export async function handleOAuthCallback(
98100
throw new Error("Token exchange failed");
99101
}
100102

101-
return await response.json();
103+
const tokens = await response.json();
104+
return OAuthTokensSchema.parse(tokens);
102105
}
103106

104107
export async function refreshAccessToken(
@@ -126,5 +129,6 @@ export async function refreshAccessToken(
126129
throw new Error("Token refresh failed");
127130
}
128131

129-
return await response.json();
132+
const tokens = await response.json();
133+
return OAuthTokensSchema.parse(tokens);
130134
}

0 commit comments

Comments
 (0)