diff --git a/src/features/AuthStore/hooks/useAuth.tsx b/src/features/AuthStore/hooks/useAuth.tsx index 50f41613..c31be46b 100644 --- a/src/features/AuthStore/hooks/useAuth.tsx +++ b/src/features/AuthStore/hooks/useAuth.tsx @@ -55,6 +55,15 @@ export const useAuth = () => { const [isNewDeviceLogin, setIsNewDeviceLogin] = useState(false) const [userInfo, setUserInfo] = useState() + const saveToken = (value: string) => { + writeToken(value) + setCookie({ + exdays: 1, + name: 'access_token', + value, + }) + } + const login = useCallback(async () => { userManager.signinRedirect({ extraQueryParams: { lang } }) }, [lang]) @@ -75,18 +84,22 @@ export const useAuth = () => { const storeUser = useCallback((loadedUser: User) => { setUser(loadedUser) - writeToken(loadedUser.access_token) - setCookie({ - exdays: 1, - name: 'access_token', - value: loadedUser.access_token, - }) + saveToken(loadedUser.access_token) }, []) const checkUser = useCallback(async () => { const loadedUser = await userManager.getUser() if (!loadedUser) { + if (history.location.pathname.includes(PAGES.mailings)) { + const url = new URL(window.location.href) + const access_token = url.searchParams.get('access_token') || '' + + saveToken(access_token) + access_token && await fetchUserInfo() + return Promise.resolve() + } + if (!readToken()) { const token = await getTemporaryToken() token && await fetchUserInfo() @@ -136,12 +149,7 @@ export const useAuth = () => { try { const { access_token } = await getTokenVirtualUser() - writeToken(access_token) - setCookie({ - exdays: 1, - name: 'access_token', - value: access_token, - }) + saveToken(access_token) return access_token // eslint-disable-next-line no-empty } catch {