обработка перелогина при оплате без мерцания
This commit is contained in:
parent
3c444a3837
commit
1169a6644c
@ -2,3 +2,4 @@
|
|||||||
. "$(dirname -- "$0")/_/husky.sh"
|
. "$(dirname -- "$0")/_/husky.sh"
|
||||||
|
|
||||||
yarn eslint . --fix
|
yarn eslint . --fix
|
||||||
|
yarn type-check
|
||||||
|
@ -5,6 +5,10 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "NODE_OPTIONS=\"--max-old-space-size=1024\" craco start",
|
"start": "NODE_OPTIONS=\"--max-old-space-size=1024\" craco start",
|
||||||
"build": "craco build",
|
"build": "craco build",
|
||||||
|
"build:check": "tsc --noEmit && craco build",
|
||||||
|
"type-check": "tsc --noEmit",
|
||||||
|
"type-check:strict": "tsc --noEmit --strict --noImplicitAny --noImplicitReturns --noImplicitThis --noUnusedLocals --noUnusedParameters",
|
||||||
|
"pre-commit": "npm run type-check",
|
||||||
"test": "craco test --env=node --transformIgnorePatterns \"node_modules/(?!@frontend)/\"",
|
"test": "craco test --env=node --transformIgnorePatterns \"node_modules/(?!@frontend)/\"",
|
||||||
"test:cart": "vitest ./src/utils/calcCart",
|
"test:cart": "vitest ./src/utils/calcCart",
|
||||||
"eject": "craco eject",
|
"eject": "craco eject",
|
||||||
|
@ -6,29 +6,30 @@ import { clearTickets } from '@root/stores/tickets';
|
|||||||
import { clearUserData, useUserStore } from '@root/stores/user';
|
import { clearUserData, useUserStore } from '@root/stores/user';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
|
|
||||||
export const useReauthorization = () => {
|
export const useReauthorization = () => {
|
||||||
const userId = useUserStore(store => store.userId)
|
const userId = useUserStore(store => store.userId)
|
||||||
|
|
||||||
const { search } = useLocation();
|
const { search } = useLocation();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// Этот эффект сработает при каждом изменении query-параметров
|
// Этот эффект сработает при каждом изменении query-параметров
|
||||||
const params = new URLSearchParams(search);
|
const params = new URLSearchParams(search);
|
||||||
|
|
||||||
const URLuserId = params.get('userId');
|
const URLuserId = params.get('userid');
|
||||||
const URLtoken = params.get('sec');
|
const URLtoken = params.get('sec');
|
||||||
|
|
||||||
if (URLuserId !== userId && URLtoken) {
|
if (URLuserId !== userId && URLtoken) {
|
||||||
if (getAuthToken()) {
|
// Если есть токен в URL, устанавливаем его
|
||||||
|
// Очищаем данные только если токен действительно изменился
|
||||||
|
if (getAuthToken() !== URLtoken) {
|
||||||
clearAuthToken();
|
clearAuthToken();
|
||||||
clearUserData();
|
clearUserData();
|
||||||
clearCustomTariffs();
|
clearCustomTariffs();
|
||||||
clearTickets();
|
clearTickets();
|
||||||
setNotEnoughMoneyAmount(0)
|
setNotEnoughMoneyAmount(0);
|
||||||
logout();
|
// Не вызываем logout() чтобы избежать перенаправления
|
||||||
}
|
}
|
||||||
setAuthToken(URLtoken);//перелогиниваемся
|
setAuthToken(URLtoken);
|
||||||
}
|
}
|
||||||
}, [search]);
|
}, [search]);
|
||||||
|
|
||||||
};
|
};
|
@ -16,7 +16,14 @@
|
|||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"jsx": "react-jsx"
|
"jsx": "react-jsx",
|
||||||
|
"noImplicitAny": true,
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"noImplicitThis": true,
|
||||||
|
"noUnusedLocals": true,
|
||||||
|
"noUnusedParameters": true,
|
||||||
|
"exactOptionalPropertyTypes": true,
|
||||||
|
"noPropertyAccessFromIndexSignature": true
|
||||||
},
|
},
|
||||||
"include": ["src", "**/*.ts"]
|
"include": ["src", "**/*.ts"]
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user