import { useState } from "react"; import { Alert, Container, Form, Row, Col, Button, Card } from "react-bootstrap"; import AdminTemplate from "../templates/AdminTemplate"; import { useNavigate } from "react-router-dom"; import axios from 'axios'; import jwtDecoder from "../organisms/jwtDecoder"; import DataStorage from "../organisms/DataStorage"; export default function AdminLoginPage() { 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 role = decodedToken.payload.roles; if (role !== 'ADMIN' && role !== 'AREA_MANAGER' && role !== 'BRANCH_MANAGER') { setError('TÀI KHOẢN KHÔNG HỢP LỆ'); } else { const full_name = decodedToken.payload.username; const expiryTime = decodedToken.payload.exp; DataStorage.set('expiryDateAdmin', expiryTime, { expiryDate: expiryTime }); DataStorage.set('usernameAdmin', full_name); DataStorage.set('roleAdmin', role); DataStorage.set('isLoggedInAdmin', 'true'); DataStorage.set('accessTokenAdmin', response.data.access_token); navigate('/admin'); } } 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 quyền quản lý
{error && {error}} Administration credential setUsername(e.target.value)} /> Mật khẩu setPassword(e.target.value)} />
{/* */} {/* */}
{/* */}
) }>
); }