Уточнить, настроить страницу входа, использовать идентификатор пользователя вместо электронной почты

мы создали проект уточнения и хотим связать его с нашей службой 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;

Как я могу настроить свою страницу входа в систему и использовать идентификатор пользователя вместо электронной почты?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
219
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение — использование утилиты swizzle.

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

Другие вопросы по теме