import { useState } from "react"; import { Alert, Container, Form, Row, Col, Button, Card } from "react-bootstrap"; import BasicTemplate from "../templates/BasicTemplate"; import { useNavigate } from "react-router-dom"; import axios from 'axios'; import jwtDecoder from "../organisms/jwtDecoder"; import DataStorage from "../organisms/DataStorage"; export default function LoginPage() { const domain = process.env.REACT_APP_API_URL; const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const navigate = useNavigate(); const handleSubmit = (e) => { e.preventDefault(); // Validate password and confirm password match if (password.length === 0) { setError('Hãy nhập mật khẩu'); } else if (username.trim().length === 0) { setError('Tên đăng nhập không thể trống') } else { setError(''); let data = { 'username': username, 'password': password } axios.post(domain + '/authentication/login', data) .then((response) => { if (response.status === 200) { // setError(JSON.stringify(jwtDecoder(response.data.access_token))); const decodedToken = jwtDecoder(response.data.access_token); const full_name = decodedToken.payload.username; const role = decodedToken.payload.roles; const expiryTime = decodedToken.payload.exp; DataStorage.set('expiryDate', expiryTime, {expiryDate:expiryTime}); DataStorage.set('username', full_name); DataStorage.set('role', role); DataStorage.set('isLoggedIn', 'true'); DataStorage.set('accessToken', response.data.access_token); DataStorage.set('cart', '{}'); navigate('/'); } else { setError(JSON.stringify(response)); } }) .catch((error) => { // if (error.status === 400) { // setError('Lỗi đăng nhập, vui lòng kiểm tra lại tài khoản và mật khẩu'); // } else if (error.status === 500) { // setError('Server đang tạm gặp vấn đề'); // } setError(JSON.stringify(error)); }) } }; return ( {/* */} Đăng nhập
{error && {error}} Email/Số điện thoại setUsername(e.target.value)} /> Mật khẩu setPassword(e.target.value)} />
{/* */}
) }>
); }