diff --git a/login-frontend/src/App.js b/login-frontend/src/App.js
index 8cb6a32..0b4427d 100644
--- a/login-frontend/src/App.js
+++ b/login-frontend/src/App.js
@@ -10,6 +10,7 @@ import Course from './pages/coursePage/Course';
import Course1 from './pages/coursePage/Course1';
import CourseRegistration from './pages/coursePage/CourseRegistration';
import TeacherDashBoard from './pages/dashboardPage/TeacherDashBoard';
+import AdminDashBoard from './pages/dashboardPage/TeacherDashBoard';
function App() {
return (
@@ -25,7 +26,7 @@ function App() {
} />
} />
- } />
+ } />
} />
} />
} />
diff --git a/login-frontend/src/components/auth/changePassword.js b/login-frontend/src/components/auth/changePassword.js
index 2f6d738..4257210 100644
--- a/login-frontend/src/components/auth/changePassword.js
+++ b/login-frontend/src/components/auth/changePassword.js
@@ -21,9 +21,9 @@ function ChangePassword(props) {
}
const response = await auth.login(email, password);
console.log("response data: ", response);
- if (response.message === "Login successful") {
+ if (response.message === "Password changed successfully.") {
setErrorMsg(null);
- setSuccessMsg("Login successful!");
+ setSuccessMsg("Password changed successfully.");
navigate('/' + path[1] + '/dashboard');
} else {
setErrorMsg(response.message);
diff --git a/login-frontend/src/components/auth/login.js b/login-frontend/src/components/auth/login.js
index ca5ab04..e3418ba 100644
--- a/login-frontend/src/components/auth/login.js
+++ b/login-frontend/src/components/auth/login.js
@@ -2,7 +2,6 @@ import React, { useState } from 'react';
import { useAuth } from '../../hooks/useAuth'; // Assuming useAuth hook exists
import Alert from '@mui/material/Alert'
import { useNavigate } from 'react-router-dom';
-import ChangePassword from './changePassword';
function Login(props) {
const path = window.location.pathname.split('/');
const [email, setEmail] = useState('');
@@ -20,7 +19,7 @@ function Login(props) {
if (response.message === "Login successful") {
setErrorMsg(null);
setSuccessMsg("Login successful!");
- navigate('/' + path[0] + '/dashboard');
+ navigate('/' + path[1] + '/dashboard');
} else if(response.message === "Default password in use. Password change required."){
setErrorMsg(response.message);
setSuccessMsg(null);
diff --git a/login-frontend/src/context/authContext.js b/login-frontend/src/context/authContext.js
index 59ca1c2..1261f8f 100644
--- a/login-frontend/src/context/authContext.js
+++ b/login-frontend/src/context/authContext.js
@@ -8,18 +8,17 @@ export function AuthProvider({ children }) {
const login = async (email, password) => {
try {
const data = await authService.login(email, password);
- if (data) {
+ if (data && data.token) {
+ sessionStorage.setItem('jwtToken'), data.token;
setUser(data);
return data;
} else {
- // Xử lý trường hợp không nhận được dữ liệu từ phản hồi
- console.error('Không nhận được dữ liệu từ phản hồi khi đăng nhập');
- return null; // Hoặc trả về giá trị mặc định khác
+ console.error('No data or token received on login');
+ return null;
}
} catch (error) {
- // Xử lý lỗi từ phản hồi
- console.error('Lỗi khi gọi hàm login:', error);
- return null; // Hoặc trả về giá trị mặc định khác
+ console.error('Error during login:', error);
+ return null;
}
};
diff --git a/login-frontend/src/hooks/useAuth.js b/login-frontend/src/hooks/useAuth.js
index c3de5c7..5bd16e4 100644
--- a/login-frontend/src/hooks/useAuth.js
+++ b/login-frontend/src/hooks/useAuth.js
@@ -1,6 +1,20 @@
import { useContext } from 'react';
import { AuthContext } from '../context/authContext';
+import { useEffect, useNavigate } from 'react';
export function useAuth() {
return useContext(AuthContext);
}
+export function useRequireAuth(redirectUrl = '/login') {
+ const auth = useAuth();
+ const navigate = useNavigate();
+
+ useEffect(() => {
+ const token = sessionStorage.getItem('jwtToken');
+ if (!token) {
+ navigate(redirectUrl);
+ }
+ }, [navigate, redirectUrl]);
+
+ return auth;
+}
\ No newline at end of file