import { useState, useEffect } from 'react'; import { Server, Eye, EyeOff } from 'lucide-react'; import { getTheme } from '../themes'; import { API_URL } from '../config'; import axios from 'axios'; export default function Auth({ onLogin }) { const [isLogin, setIsLogin] = useState(true); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const [theme] = useState(localStorage.getItem('theme') || 'modern'); const [oidcProviders, setOidcProviders] = useState({}); const currentTheme = getTheme(theme); useEffect(() => { loadOidcProviders(); }, []); const loadOidcProviders = async () => { try { const { data } = await axios.get(`${API_URL}/api/auth/oidc/providers`); setOidcProviders(data); } catch (error) { console.error('Ошибка загрузки OIDC провайдеров:', error); } }; const handleOidcLogin = (provider) => { window.location.href = `${API_URL}/api/auth/oidc/${provider}/login`; }; const handleSubmit = async (e) => { e.preventDefault(); setError(''); setLoading(true); try { await onLogin(username, password, isLogin); } catch (err) { setError(err.message || 'Ошибка авторизации'); } finally { setLoading(false); } }; return (
Панель управления Minecraft серверами
Учётные данные по умолчанию:
none / none
© 2026 MC Panel. Все права защищены.