fix: improve URL validation logic in validateRedirectUrl function (#27058)

This commit is contained in:
GuanMu
2025-10-17 17:46:28 +08:00
committed by GitHub
parent 64f55d55a1
commit fea2ffb3ba

View File

@@ -7,18 +7,17 @@
*/ */
export function validateRedirectUrl(url: string): void { export function validateRedirectUrl(url: string): void {
try { try {
const parsedUrl = new URL(url); const parsedUrl = new URL(url)
if (parsedUrl.protocol !== "http:" && parsedUrl.protocol !== "https:") { if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:')
throw new Error("Authorization URL must be HTTP or HTTPS"); throw new Error('Authorization URL must be HTTP or HTTPS')
} }
} catch (error) { catch (error) {
if ( if (
error instanceof Error && error instanceof Error
error.message === "Authorization URL must be HTTP or HTTPS" && error.message === 'Authorization URL must be HTTP or HTTPS'
) { )
throw error; throw error
}
// If URL parsing fails, it's also invalid // If URL parsing fails, it's also invalid
throw new Error(`Invalid URL: ${url}`); throw new Error(`Invalid URL: ${url}`)
} }
} }