feat: can use provider_hint arg to do OAuth redirect automatically (#3698)

This commit is contained in:
DacongDA 2025-04-02 01:15:20 +08:00 committed by GitHub
parent b6f943e326
commit 62bda61af5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -37,6 +37,7 @@ import RedirectForm from "../common/RedirectForm";
import {RequiredMfa} from "./mfa/MfaAuthVerifyForm"; import {RequiredMfa} from "./mfa/MfaAuthVerifyForm";
import {GoogleOneTapLoginVirtualButton} from "./GoogleLoginButton"; import {GoogleOneTapLoginVirtualButton} from "./GoogleLoginButton";
import * as ProviderButton from "./ProviderButton"; import * as ProviderButton from "./ProviderButton";
import {goToLink} from "../Setting";
const FaceRecognitionCommonModal = lazy(() => import("../common/modal/FaceRecognitionCommonModal")); const FaceRecognitionCommonModal = lazy(() => import("../common/modal/FaceRecognitionCommonModal"));
const FaceRecognitionModal = lazy(() => import("../common/modal/FaceRecognitionModal")); const FaceRecognitionModal = lazy(() => import("../common/modal/FaceRecognitionModal"));
@ -747,6 +748,8 @@ class LoginPage extends React.Component {
if (signinItem.rule === "None" || signinItem.rule === "") { if (signinItem.rule === "None" || signinItem.rule === "") {
signinItem.rule = showForm ? "small" : "big"; signinItem.rule = showForm ? "small" : "big";
} }
const searchParams = new URLSearchParams(window.location.search);
const providerHint = searchParams.get("provider_hint");
return ( return (
<div key={resultItemKey}> <div key={resultItemKey}>
@ -754,6 +757,10 @@ class LoginPage extends React.Component {
<Form.Item> <Form.Item>
{ {
application.providers.filter(providerItem => this.isProviderVisible(providerItem)).map((providerItem, id) => { application.providers.filter(providerItem => this.isProviderVisible(providerItem)).map((providerItem, id) => {
if (providerHint === providerItem.provider.name) {
goToLink(Provider.getAuthUrl(application, providerItem.provider, "signup"));
return;
}
return ( return (
<span key={id} onClick={(e) => { <span key={id} onClick={(e) => {
const agreementChecked = this.form.current.getFieldValue("agreement"); const agreementChecked = this.form.current.getFieldValue("agreement");