import React, { useState, useEffect } from 'react' import { Link, useNavigate, Navigate } from 'react-router-dom' import { CButton, CCard, CCardBody, CCardGroup, CCol, CContainer, CForm, CFormInput, CInputGroup, CInputGroupText, CRow, CSpinner, } from '@coreui/react' import CIcon from '@coreui/icons-react' import { cilLockLocked, cilUser } from '@coreui/icons' import { login as apiLogin, DecodedToken, getAccessTokenFromCookie } from 'src/axios/authService'; import { useAuth } from 'src/hooks/useAuth'; import { jwtDecode } from 'jwt-decode'; const Login = () => { const [memberId, setMemberId] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const { login } = useAuth(); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setLoading(true); try { const response = await apiLogin({ memberId, password }); if (response.resultCode === '200') { const accessToken = getAccessTokenFromCookie(); if (accessToken) { const decodedToken = jwtDecode(accessToken); const member = { memberId: decodedToken.memberId, memberName: decodedToken.memberName, }; login(accessToken, member); navigate('/dashboard'); } else { setError('쿠키에서 accessToken을 찾을 수 없습니다.'); } } else { setError(response.resultMessage || '로그인에 실패했습니다.'); } } catch (err: any) { setError(err.response?.data?.message || '로그인 중 오류가 발생했습니다.'); } finally { setLoading(false); } }; return (

Login

Sign In to your account

{error &&
{error}
} setMemberId(e.target.value)} /> setPassword(e.target.value)} /> {loading ? 'Logging in...' : 'Login'}

Sign up

신규 사용자의 경우, 가입신청 후 권한을 부여받아야 접속 가능합니다.

Register Now!
) } export default Login