Просмотр исходного кода

Merge pull request #1465 from fangzhengjin/alpha

fix: 当OIDC的AuthUrl带有param时,跳转参数拼接错误
Calcium-Ion 7 месяцев назад
Родитель
Сommit
2efc133997
1 измененных файлов с 8 добавлено и 6 удалено
  1. 8 6
      web/src/helpers/api.js

+ 8 - 6
web/src/helpers/api.js

@@ -215,14 +215,16 @@ export async function getOAuthState() {
 export async function onOIDCClicked(auth_url, client_id, openInNewTab = false) {
   const state = await getOAuthState();
   if (!state) return;
-  const redirect_uri = `${window.location.origin}/oauth/oidc`;
-  const response_type = 'code';
-  const scope = 'openid profile email';
-  const url = `${auth_url}?client_id=${client_id}&redirect_uri=${redirect_uri}&response_type=${response_type}&scope=${scope}&state=${state}`;
+  const url = new URL(auth_url);
+  url.searchParams.set('client_id', client_id);
+  url.searchParams.set('redirect_uri', `${window.location.origin}/oauth/oidc`);
+  url.searchParams.set('response_type', 'code');
+  url.searchParams.set('scope', 'openid profile email');
+  url.searchParams.set('state', state);
   if (openInNewTab) {
-    window.open(url);
+    window.open(url.toString(), '_blank');
   } else {
-    window.location.href = url;
+    window.location.href = url.toString();
   }
 }