From 62bda61af5cb668e99fa494583701647a0c6ce95 Mon Sep 17 00:00:00 2001 From: DacongDA Date: Wed, 2 Apr 2025 01:15:20 +0800 Subject: [PATCH] feat: can use provider_hint arg to do OAuth redirect automatically (#3698) --- web/src/auth/LoginPage.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web/src/auth/LoginPage.js b/web/src/auth/LoginPage.js index 6cd0223b..264ad024 100644 --- a/web/src/auth/LoginPage.js +++ b/web/src/auth/LoginPage.js @@ -37,6 +37,7 @@ import RedirectForm from "../common/RedirectForm"; import {RequiredMfa} from "./mfa/MfaAuthVerifyForm"; import {GoogleOneTapLoginVirtualButton} from "./GoogleLoginButton"; import * as ProviderButton from "./ProviderButton"; +import {goToLink} from "../Setting"; const FaceRecognitionCommonModal = lazy(() => import("../common/modal/FaceRecognitionCommonModal")); const FaceRecognitionModal = lazy(() => import("../common/modal/FaceRecognitionModal")); @@ -747,6 +748,8 @@ class LoginPage extends React.Component { if (signinItem.rule === "None" || signinItem.rule === "") { signinItem.rule = showForm ? "small" : "big"; } + const searchParams = new URLSearchParams(window.location.search); + const providerHint = searchParams.get("provider_hint"); return (
@@ -754,6 +757,10 @@ class LoginPage extends React.Component { { application.providers.filter(providerItem => this.isProviderVisible(providerItem)).map((providerItem, id) => { + if (providerHint === providerItem.provider.name) { + goToLink(Provider.getAuthUrl(application, providerItem.provider, "signup")); + return; + } return ( { const agreementChecked = this.form.current.getFieldValue("agreement");