| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import React from 'react';
- import { AuthProvider } from '../hooks/AuthProvider';
- import { LoginPage } from './LoginPage';
- type AuthManagementProps = {
- children?: React.ReactNode;
- /**
- * 自定义登录页面组件
- * 如果未提供,将使用默认的LoginPage
- */
- customLoginPage?: React.ComponentType;
- /**
- * 登录成功后重定向的路径
- * 默认为 '/admin/dashboard'
- */
- redirectPath?: string;
- /**
- * 默认租户ID
- * 如果提供,将在登录时使用该租户ID
- */
- defaultTenantId?: number;
- };
- // 内部组件:处理默认租户ID设置
- const AuthManagementContent: React.FC<Omit<AuthManagementProps, 'defaultTenantId'>> = ({
- children,
- customLoginPage: CustomLoginPage
- }) => {
- return (
- <>
- {children ? (
- children
- ) : (
- CustomLoginPage ? (
- <CustomLoginPage />
- ) : (
- <LoginPage />
- )
- )}
- </>
- );
- };
- /**
- * 认证管理主组件
- * 提供完整的认证管理功能,包括登录页面和认证状态管理
- */
- export const AuthManagement: React.FC<AuthManagementProps> = ({
- children,
- customLoginPage: CustomLoginPage,
- defaultTenantId
- }) => {
- return (
- <AuthProvider>
- <AuthManagementContent
- children={children}
- customLoginPage={CustomLoginPage}
- />
- </AuthProvider>
- );
- };
|