| @@ -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([{ | ||||