import { useEffect, useState } from 'react' import { useNavigate } from 'react-router-dom' import { useQuery } from '@tanstack/react-query' import { motion } from 'framer-motion' import { Shield, Lock, ArrowRight, AlertCircle, Loader2 } from 'lucide-react' import { api } from '@/lib/api' import { Logo } from '@/components/Logo' const BRAND = '#8B5CF6' export function Verify() { const navigate = useNavigate() const [uuid, setUuid] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) const { data: status, isLoading: statusLoading } = useQuery({ queryKey: ['access-auth-status'], queryFn: () => api.accessAuthStatus(), }) // 已验证 或 未启用门控,直接进首页 useEffect(() => { if (status && (!status.enabled || status.verified)) { navigate('/', { replace: true }) } }, [status, navigate]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() const value = uuid.trim() if (!value) { setError('请输入访问密钥') return } setLoading(true) setError('') try { const res = await api.verifyAccessUuid(value) if (res.valid && res.token) { localStorage.setItem('access_token', res.token) localStorage.setItem('access_role', res.role || 'user') if (res.role === 'admin') { navigate('/admin/uuids', { replace: true }) } else { navigate('/', { replace: true }) } } else { setError('访问密钥无效,请检查后重试') } } catch (err: any) { setError(err?.message || '验证失败,请稍后重试') } finally { setLoading(false) } } return (
{/* 背景光晕 */}
{/* 顶栏 */}
Stock Panel
{/* 验证卡片 */}
{statusLoading ? (
) : (

请输入访问密钥

当前环境已启用访问门控,请输入管理员令牌或访问 UUID 后继续。

{ setUuid(e.target.value) if (error) setError('') }} className="w-full pl-9 pr-3 py-2.5 rounded-input bg-base border border-border text-sm font-mono focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent/30 transition-all" />
{error && (
{error}
)}
)}
) }