import React, {useContext, useEffect, useState} from 'react'; import {Link, useNavigate, useSearchParams} from 'react-router-dom'; import {UserContext} from '../context/User'; import {API, getLogo, isMobile, showError, showInfo, showSuccess, showWarning} from '../helpers'; import {onGitHubOAuthClicked} from './utils'; import Turnstile from "react-turnstile"; import {Layout, Card, Image, Form, Button, Divider, Modal} from "@douyinfe/semi-ui"; import Title from "@douyinfe/semi-ui/lib/es/typography/title"; import Text from "@douyinfe/semi-ui/lib/es/typography/text"; import {IconGithubLogo} from '@douyinfe/semi-icons'; const LoginForm = () => { const [inputs, setInputs] = useState({ username: '', password: '', wechat_verification_code: '' }); const [searchParams, setSearchParams] = useSearchParams(); const [submitted, setSubmitted] = useState(false); const {username, password} = inputs; const [userState, userDispatch] = useContext(UserContext); const [turnstileEnabled, setTurnstileEnabled] = useState(false); const [turnstileSiteKey, setTurnstileSiteKey] = useState(''); const [turnstileToken, setTurnstileToken] = useState(''); let navigate = useNavigate(); const [status, setStatus] = useState({}); const logo = getLogo(); useEffect(() => { if (searchParams.get('expired')) { showError('未登录或登录已过期,请重新登录!'); } let status = localStorage.getItem('status'); if (status) { status = JSON.parse(status); setStatus(status); if (status.turnstile_check) { setTurnstileEnabled(true); setTurnstileSiteKey(status.turnstile_site_key); } } }, []); const [showWeChatLoginModal, setShowWeChatLoginModal] = useState(false); const onWeChatLoginClicked = () => { setShowWeChatLoginModal(true); }; const onSubmitWeChatVerificationCode = async () => { if (turnstileEnabled && turnstileToken === '') { showInfo('请稍后几秒重试,Turnstile 正在检查用户环境!'); return; } const res = await API.get( `/api/oauth/wechat?code=${inputs.wechat_verification_code}` ); const {success, message, data} = res.data; if (success) { userDispatch({type: 'login', payload: data}); localStorage.setItem('user', JSON.stringify(data)); navigate('/'); showSuccess('登录成功!'); setShowWeChatLoginModal(false); } else { showError(message); } }; function handleChange(name, value) { setInputs((inputs) => ({...inputs, [name]: value})); } async function handleSubmit(e) { if (turnstileEnabled && turnstileToken === '') { showInfo('请稍后几秒重试,Turnstile 正在检查用户环境!'); return; } setSubmitted(true); if (username && password) { const res = await API.post(`/api/user/login?turnstile=${turnstileToken}`, { username, password }); const {success, message, data} = res.data; if (success) { userDispatch({type: 'login', payload: data}); localStorage.setItem('user', JSON.stringify(data)); showSuccess('登录成功!'); if (username === 'root' && password === '123456') { Modal.error({title: '您正在使用默认密码!', content: '请立刻修改默认密码!', centered: true}); } navigate('/token'); } else { showError(message); } } else { showError('请输入用户名和密码!'); } } return (
*/} {/* 微信扫码关注公众号,输入「验证码」获取验证码(三分钟内有效)*/} {/*
*/} {/*