feat: 🎸 ott-2683-logout

keep-around/4fa2d04df9164b48d1cf3e3fb01326366d31a652
Zoia R 3 years ago
parent fdb88b04b3
commit 4fa2d04df9
  1. 35
      src/features/AuthStore/hooks/useAuth.tsx

@ -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)

Loading…
Cancel
Save