|
|
|
|
@ -21,6 +21,7 @@ import { |
|
|
|
|
setCookie, |
|
|
|
|
removeCookie, |
|
|
|
|
isMatchPage, |
|
|
|
|
TOKEN_KEY, |
|
|
|
|
} from 'helpers' |
|
|
|
|
|
|
|
|
|
import { |
|
|
|
|
@ -40,7 +41,7 @@ import { |
|
|
|
|
getTokenVirtualUser, |
|
|
|
|
} from 'requests' |
|
|
|
|
|
|
|
|
|
import { userManager, channel } from '../config' |
|
|
|
|
import { userManager } from '../config' |
|
|
|
|
import { needCheckNewDeviсe } from '../helpers' |
|
|
|
|
|
|
|
|
|
export const useAuth = () => { |
|
|
|
|
@ -80,8 +81,6 @@ export const useAuth = () => { |
|
|
|
|
name: 'access_token', |
|
|
|
|
value: loadedUser.access_token, |
|
|
|
|
}) |
|
|
|
|
// обновляем токен в других окнах/вкладках
|
|
|
|
|
channel.postMessage({ token: loadedUser.access_token }) |
|
|
|
|
}, []) |
|
|
|
|
|
|
|
|
|
const checkUser = useCallback(async () => { |
|
|
|
|
@ -177,23 +176,24 @@ export const useAuth = () => { |
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
useEventListener({ |
|
|
|
|
callback: useCallback(async (e: MessageEvent<{ token: string }>) => { |
|
|
|
|
callback: useCallback(async (e: StorageEvent) => { |
|
|
|
|
const loadedUser = await userManager.getUser() |
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
!e.data.token |
|
|
|
|
e.storageArea !== localStorage |
|
|
|
|
|| e.key !== TOKEN_KEY |
|
|
|
|
|| !e.newValue |
|
|
|
|
|| !loadedUser |
|
|
|
|
|| loadedUser.access_token === e.data.token |
|
|
|
|
|| loadedUser.access_token === e.newValue |
|
|
|
|
) return |
|
|
|
|
|
|
|
|
|
userManager.storeUser({ |
|
|
|
|
...loadedUser, |
|
|
|
|
access_token: e.data.token, |
|
|
|
|
access_token: e.newValue, |
|
|
|
|
toStorageString: loadedUser.toStorageString, |
|
|
|
|
}) |
|
|
|
|
}, []), |
|
|
|
|
event: 'message', |
|
|
|
|
target: channel, |
|
|
|
|
event: 'storage', |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|