From ff15ea1eec4dfd15c7ea8a2319fb93d85f30ceb5 Mon Sep 17 00:00:00 2001 From: forehalo Date: Sat, 14 Sep 2024 01:35:59 +0000 Subject: [PATCH] fix(core): avoid extra redirect proxy (#8252) --- packages/frontend/core/src/utils/popup.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/frontend/core/src/utils/popup.ts b/packages/frontend/core/src/utils/popup.ts index 811a7f344..528d629e3 100644 --- a/packages/frontend/core/src/utils/popup.ts +++ b/packages/frontend/core/src/utils/popup.ts @@ -1,8 +1,18 @@ export function popupWindow(target: string) { - const url = new URL(BUILD_CONFIG.serverUrlPrefix + '/redirect-proxy'); target = /^https?:\/\//.test(target) ? target : BUILD_CONFIG.serverUrlPrefix + target; - url.searchParams.set('redirect_uri', target); + const targetUrl = new URL(target); + + let url: string; + // safe to open directly if in the same origin + if (targetUrl.origin === location.origin) { + url = target; + } else { + const builder = new URL(BUILD_CONFIG.serverUrlPrefix + '/redirect-proxy'); + builder.searchParams.set('redirect_uri', target); + url = builder.toString(); + } + return window.open(url, '_blank', `noreferrer noopener`); }