// entrypoints/popup/pages/Login.tsx import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { Button, Input, Message, Form } from '@alifd/next'; export default function Login({ setIsLoggedIn }: { setIsLoggedIn: (loggedIn: boolean) => void }) { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [errors, setErrors] = useState<{ username?: string, password?: string }>({}); const navigate = useNavigate(); const validateForm = () => { const newErrors: { username?: string, password?: string } = {}; if (!username.trim()) { newErrors.username = '请输入用户名'; } if (!password) { newErrors.password = '请输入密码'; } else if (password.length < 6) { newErrors.password = '密码长度至少为6位'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const evVerify = () => { console.log('username') fetch('//user.landwu.com/api/user/verify', { method: 'POST', headers: { 'Content-Type': 'application/json', }, // body: JSON.stringify({ // username, // password, // code // }), }).then(resjson => { if (!resjson.ok) { throw new Error('登录失败'); } return resjson.json(); // 正确解析 Response 为 JSON 数据 }).then(res => { console.log(res,"yyyyyyyy"); const { data = {} } = res; const { data: info = {} } = data; const { key = "", img = "" } = info; }) } const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); if (!validateForm()) { return; } setLoading(true); try { // 发送登录请求 const response = await fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ username, password, code }), }); const data = await response.json(); if (response.ok && data.success) { // 登录成功 localStorage.setItem('isLoggedIn', 'true'); // 如果后端返回token,也可以存储token // localStorage.setItem('token', data.token); setIsLoggedIn(true); navigate('/'); Message.success('登录成功'); } else { // 登录失败 Message.error(data.message || '登录失败,请检查用户名和密码'); } } catch (error) { console.error('登录请求失败:', error); Message.error('网络错误,请稍后重试'); } finally { setLoading(false); } // 模拟登录请求 // setTimeout(() => { // // 这里添加实际的登录逻辑 // if (username && password) { // // 模拟登录成功 // localStorage.setItem('isLoggedIn', 'true'); // setIsLoggedIn(true); // // 跳转到首页 // navigate('/'); // Message.success('登录成功'); // } else { // Message.error('登录失败,请检查用户名和密码'); // } // setLoading(false); // }, 1000); }; return (
忘记密码?请联系管理员