diff --git a/src/auth/index.js b/src/auth/index.js index 3e4a61d..61729c3 100644 --- a/src/auth/index.js +++ b/src/auth/index.js @@ -25,6 +25,9 @@ export const handleLogin = data => { refreshToken: data['refreshToken'] }) + const loginDate = new Date() + loginDate.setSeconds(loginDate.getSeconds() + 10) + console.log(data) // ** Add to user, accessToken & refreshToken to localStorage localStorage.setItem('userData', JSON.stringify(data)) @@ -33,6 +36,7 @@ export const handleLogin = data => { localStorage.setItem('axiosToken', "Bearer " + data.accessToken) //localStorage.setItem(config.storageUserRoleKeyName, JSON.stringify(data.role).slice(1).slice(0, -1)) localStorage.setItem(refreshIntervalName, "60") + localStorage.setItem('refreshTokenExpirationTime', loginDate) // for demo only localStorage.setItem(windowCount, '0') localStorage.setItem(predictProductionQty, '0') @@ -93,6 +97,7 @@ export const handleLogoutFunction = () => { localStorage.removeItem(windowCount) localStorage.removeItem(predictProductionQty) localStorage.removeItem(predictUsageCount) + localStorage.removeItem("refreshTokenExpirationTime") } } diff --git a/src/routes/index.js b/src/routes/index.js index 72759a5..b8b2b08 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -14,19 +14,36 @@ import { } from "utils/Utils"; import { Navigate } from "react-router"; import { - SetupAxiosInterceptors, + SetupAxiosInterceptors, handleLogoutFunction, } from "auth/index"; import SettingRoutes from './SettingRoutes'; +// import { useNavigate } from 'react-router-dom' +import { useDispatch } from 'react-redux' // import Loadable from 'components/Loadable'; // import { lazy } from 'react'; // const SettingRoutes = Loadable(lazy(() => import('./SettingRoutes'))); // ==============================|| ROUTING RENDER ||============================== // export default function ThemeRoutes() { + // const navigate = useNavigate() + const dispatch = useDispatch(); + // let isExpired = false; if (isUserLoggedIn()) { //auto logout if token not valid SetupAxiosInterceptors(); + if (new Date(localStorage.getItem("refreshTokenExpirationTime")) < new Date()) { + window.alert("登入認證已過期,請重新登入。") + dispatch(handleLogoutFunction()); + // isExpired = true + } + + // if (isExpired) { + // dispatch(handleLogoutFunction()); + // console.log("first") + // navigate('/login') + // isExpired = false + // } } // console.log(); return useRoutes([{