fix(#274): fix logout for auth users

pull/70/head
Andrei Dekterev 3 years ago
parent d5adc2cd7e
commit 6d88197ac3
  1. 12
      src/features/AuthStore/hooks/useAuth.tsx
  2. 7
      src/helpers/callApi/logoutIfUnauthorized.tsx

@ -89,8 +89,9 @@ export const useAuth = () => {
if (!readToken()) {
const token = await getTemporaryToken()
token && await fetchUserInfo()
return Promise.resolve()
}
return Promise.resolve()
return Promise.reject()
}
storeUser(loadedUser)
@ -204,21 +205,24 @@ export const useAuth = () => {
}, [reChekNewDevice, userManager])
useEffect(() => {
if (!needCheckNewDeviсe) return undefined
if (!needCheckNewDeviсe && !user) return undefined
const startCheckDevice = setInterval(checkNewDevice, 20000)
isNewDeviceLogin && clearInterval(startCheckDevice)
return () => clearInterval(startCheckDevice)
}, [checkNewDevice,
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [
checkNewDevice,
isNewDeviceLogin,
setIsNewDeviceLogin,
])
useEffect(() => {
// попытаемся обновить токен используя refresh_token
const tryRenewToken = () => {
userManager.signinSilent()
.catch(() => user && logout())
}
// попытаемся обновить токен используя refresh_token
// если запросы вернули 401 | 403
window.addEventListener('FORBIDDEN_REQUEST', tryRenewToken)

@ -1,8 +1,9 @@
export const logoutIfUnauthorized = async (response: Response) => {
/* отключили из-за доступа без авторизации */
if (response.status === 401 || response.status === 403) {
window.dispatchEvent(new Event('FORBIDDEN_REQUEST'))
}
// if (response.status === 401 || response.status === 403) {
// removeToken()
// window.dispatchEvent(new Event('FORBIDDEN_REQUEST'))
// }
const error = new Error(response.statusText)
// eslint-disable-next-line no-console

Loading…
Cancel
Save