import { useState, useEffect } from 'react'; import Topbar from './components/Topbar'; import TokenBar from './components/TokenBar'; import Scenario1Tab from './tabs/Scenario1Tab'; import Scenario2Tab from './tabs/Scenario2Tab'; import ApiTab from './tabs/ApiTab'; import AdminTab from './tabs/AdminTab'; import IntelTab from './tabs/IntelTab'; import { getToken, clearToken } from './api'; const TABS = [ { id: 'scenario1', label: '🔬 Scenario 1: Behavior' }, { id: 'scenario2', label: '🚨 Scenario 2: Attacks' }, { id: 'api', label: '🔧 API Testing' }, { id: 'admin', label: '🛡️ Admin Dashboard' }, { id: 'intel', label: '🧠 Intelligence' }, ]; export default function App() { const [activeTab, setActiveTab] = useState('scenario1'); const [token, setToken] = useState(getToken); const [serverStatus, setServerStatus] = useState('checking'); const refreshToken = () => setToken(getToken()); const handleClear = () => { clearToken(); setToken(''); }; const ping = async () => { setServerStatus('checking'); try { const r = await fetch('/health'); setServerStatus(r.ok ? 'online' : 'error'); } catch { setServerStatus('offline'); } }; useEffect(() => { ping(); }, []); return (
Production-ready risk-based auth — JWT • 2FA • Behavioral Analysis • Anomaly Detection