|
|
|
|
@ -16,20 +16,14 @@ import { PAGES } from 'config' |
|
|
|
|
import { |
|
|
|
|
addLanguageUrlParam, |
|
|
|
|
} from 'helpers/languageUrlParam' |
|
|
|
|
import { |
|
|
|
|
writeToken, |
|
|
|
|
removeToken, |
|
|
|
|
readToken, |
|
|
|
|
} from 'helpers/token' |
|
|
|
|
import { writeToken, removeToken } from 'helpers/token' |
|
|
|
|
import { setCookie, removeCookie } from 'helpers/cookie' |
|
|
|
|
import { isMatchPage } from 'helpers/isMatchPage' |
|
|
|
|
|
|
|
|
|
import { useLocalStore, useToggle } from 'hooks' |
|
|
|
|
|
|
|
|
|
import { useLexicsStore } from 'features/LexicsStore' |
|
|
|
|
import { |
|
|
|
|
queryParamStorage, |
|
|
|
|
} from 'features/QueryParamsStorage' |
|
|
|
|
import { queryParamStorage } from 'features/QueryParamsStorage' |
|
|
|
|
|
|
|
|
|
import { getUserInfo } from 'requests/getUserInfo' |
|
|
|
|
import { checkDevice, FailedResponse } from 'requests/checkDevice' |
|
|
|
|
@ -148,21 +142,26 @@ export const useAuth = () => { |
|
|
|
|
history, |
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
const checkNewDevice = useCallback(async () => { |
|
|
|
|
const accessToken = readToken() |
|
|
|
|
if (!accessToken) return |
|
|
|
|
|
|
|
|
|
await checkDevice(accessToken).catch((er:FailedResponse) => { |
|
|
|
|
if (er.error) { |
|
|
|
|
logout() |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
userManager.clearStaleState() |
|
|
|
|
const reChekNewDevice = useCallback(async () => { |
|
|
|
|
const loadedUser = await userManager.getUser() |
|
|
|
|
if (!loadedUser) return |
|
|
|
|
|
|
|
|
|
checkDevice(loadedUser.access_token).catch((er:FailedResponse) => { |
|
|
|
|
if (er.error) return |
|
|
|
|
setIsNewDeviceLogin(true) |
|
|
|
|
setTimeout(logout, 10000) |
|
|
|
|
}) |
|
|
|
|
}, [logout, userManager]) |
|
|
|
|
|
|
|
|
|
const checkNewDevice = useCallback(async () => { |
|
|
|
|
const loadedUser = await userManager.getUser() |
|
|
|
|
if (!loadedUser) return |
|
|
|
|
|
|
|
|
|
checkDevice(loadedUser.access_token).catch(() => { |
|
|
|
|
setTimeout(reChekNewDevice, 2000) |
|
|
|
|
}) |
|
|
|
|
}, [reChekNewDevice, userManager]) |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
const startCheckDevice = setInterval(checkNewDevice, 20000) |
|
|
|
|
isNewDeviceLogin && clearInterval(startCheckDevice) |
|
|
|
|
|