import React, { useState, useEffect } from 'react'; import axios from 'axios'; import './App.css'; import PasswordLogin from './components/PasswordLogin'; import PasswordManager from './components/PasswordManager'; // API 地址配置:优先使用环境变量,否则根据构建模式自动选择 const API_BASE = process.env.REACT_APP_API_BASE || (process.env.NODE_ENV === 'production' ? 'https://keyvault.api.shumengya.top/api' : 'http://localhost:8080/api'); const STORAGE_KEY = 'mengyakeyvault_authenticated'; function App() { const [authenticated, setAuthenticated] = useState(false); const [loading, setLoading] = useState(true); useEffect(() => { // 检查是否已认证 const cached = localStorage.getItem(STORAGE_KEY); if (cached === 'true') { setAuthenticated(true); } setLoading(false); }, []); const handleLogin = async (password) => { try { const response = await axios.post(`${API_BASE}/verify`, { password }); if (response.data.success) { localStorage.setItem(STORAGE_KEY, 'true'); setAuthenticated(true); return true; } return false; } catch (error) { console.error('登录失败:', error); return false; } }; if (loading) { return (
); } if (!authenticated) { return ; } return ; } export default App;