@@ -25,6 +25,9 @@ export const handleLogin = data => { | |||||
refreshToken: data['refreshToken'] | refreshToken: data['refreshToken'] | ||||
}) | }) | ||||
const loginDate = new Date() | |||||
loginDate.setSeconds(loginDate.getSeconds() + 10) | |||||
console.log(data) | console.log(data) | ||||
// ** Add to user, accessToken & refreshToken to localStorage | // ** Add to user, accessToken & refreshToken to localStorage | ||||
localStorage.setItem('userData', JSON.stringify(data)) | localStorage.setItem('userData', JSON.stringify(data)) | ||||
@@ -33,6 +36,7 @@ export const handleLogin = data => { | |||||
localStorage.setItem('axiosToken', "Bearer " + data.accessToken) | localStorage.setItem('axiosToken', "Bearer " + data.accessToken) | ||||
//localStorage.setItem(config.storageUserRoleKeyName, JSON.stringify(data.role).slice(1).slice(0, -1)) | //localStorage.setItem(config.storageUserRoleKeyName, JSON.stringify(data.role).slice(1).slice(0, -1)) | ||||
localStorage.setItem(refreshIntervalName, "60") | localStorage.setItem(refreshIntervalName, "60") | ||||
localStorage.setItem('refreshTokenExpirationTime', loginDate) | |||||
// for demo only | // for demo only | ||||
localStorage.setItem(windowCount, '0') | localStorage.setItem(windowCount, '0') | ||||
localStorage.setItem(predictProductionQty, '0') | localStorage.setItem(predictProductionQty, '0') | ||||
@@ -93,6 +97,7 @@ export const handleLogoutFunction = () => { | |||||
localStorage.removeItem(windowCount) | localStorage.removeItem(windowCount) | ||||
localStorage.removeItem(predictProductionQty) | localStorage.removeItem(predictProductionQty) | ||||
localStorage.removeItem(predictUsageCount) | localStorage.removeItem(predictUsageCount) | ||||
localStorage.removeItem("refreshTokenExpirationTime") | |||||
} | } | ||||
} | } | ||||
@@ -14,19 +14,36 @@ import { | |||||
} from "utils/Utils"; | } from "utils/Utils"; | ||||
import { Navigate } from "react-router"; | import { Navigate } from "react-router"; | ||||
import { | import { | ||||
SetupAxiosInterceptors, | |||||
SetupAxiosInterceptors, handleLogoutFunction, | |||||
} from "auth/index"; | } from "auth/index"; | ||||
import SettingRoutes from './SettingRoutes'; | import SettingRoutes from './SettingRoutes'; | ||||
// import { useNavigate } from 'react-router-dom' | |||||
import { useDispatch } from 'react-redux' | |||||
// import Loadable from 'components/Loadable'; | // import Loadable from 'components/Loadable'; | ||||
// import { lazy } from 'react'; | // import { lazy } from 'react'; | ||||
// const SettingRoutes = Loadable(lazy(() => import('./SettingRoutes'))); | // const SettingRoutes = Loadable(lazy(() => import('./SettingRoutes'))); | ||||
// ==============================|| ROUTING RENDER ||============================== // | // ==============================|| ROUTING RENDER ||============================== // | ||||
export default function ThemeRoutes() { | export default function ThemeRoutes() { | ||||
// const navigate = useNavigate() | |||||
const dispatch = useDispatch(); | |||||
// let isExpired = false; | |||||
if (isUserLoggedIn()) { | if (isUserLoggedIn()) { | ||||
//auto logout if token not valid | //auto logout if token not valid | ||||
SetupAxiosInterceptors(); | 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(); | // console.log(); | ||||
return useRoutes([{ | return useRoutes([{ | ||||