мы создали проект уточнения и хотим связать его с нашей службой oauth2, наш провайдер аутентификации имеет логику userId:пароль вместо комбинации электронной почты:пароль, мы попробовали настройку AuthPage, но у него нет такой возможности настройки, он просто может установите нижний колонтитул или измените стиль страницы. так:
import { Link } from "react-router-dom";
import { AuthPage } from "@refinedev/mui";
const LoginPage: React.FC = () => {
return (
<AuthPage
type = "login"
rememberMe = {
<div
style = {{
border: "1px dashed cornflowerblue",
padding: 3,
}}
>
<input name = "CustomRememberMe" type = "checkbox" /> remember me
</div>
}
registerLink = {
<div
style = {{
border: "1px dashed cornflowerblue",
marginTop: 5,
padding: 5,
}}
>
<Link to = "/register">Register</Link>
</div>
}
forgotPasswordLink = {
<div
style = {{
border: "1px dashed cornflowerblue",
marginTop: 5,
padding: 5,
}}
>
<Link to = "/forgot-password">Forgot Password</Link>
</div>
}
wrapperProps = {{
style: {
background: "linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)",
position: "absolute",
top: "0px",
right: "0px",
bottom: "0px",
left: "0px",
},
}}
contentProps = {{
style: {
background: "linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)",
},
}}
renderContent = {(content: React.ReactNode) => {
return (
<div
style = {{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<h1>Header</h1>
{content}
<h2>Footer</h2>
</div>
);
}}
/>
);
};
export default LoginPage;
Как я могу настроить свою страницу входа в систему и использовать идентификатор пользователя вместо электронной почты?





Решение — использование утилиты swizzle.
npm run refine -- swizzle@refinedev/muiAuthPage, чтобы прокрутитьsrc/components/pages/auth/components, перейдите в это место и проверьте файлы.interface с именем LoginFormTypes в файл login.tsx и удалите повторяющуюся ссылку типа из импорта @refinedev/core с тем же именем в разделе импорта, как показано ниже:export interface LoginFormTypes {
userID?: string; // or any field you like
password?: string;
remember?: boolean;
providerName?: string;
redirectPath?: string;
}
Content, замените TextFields и выполните необходимые настройки.AuthPage import from App.tsx на это:import { AuthPage } from "./components/pages/auth";