Djordje Mitrovic 3 лет назад
Родитель
Сommit
aa2a20397e
2 измененных файлов: 27 добавлений и 1 удалений
  1. 3
    1
      src/store/index.js
  2. 24
    0
      src/store/middleware/authenticationMiddleware.js

+ 3
- 1
src/store/index.js Просмотреть файл

import internalServerErrorMiddleware from "./middleware/internalServerErrorMiddleware"; import internalServerErrorMiddleware from "./middleware/internalServerErrorMiddleware";
import persistStore from "redux-persist/es/persistStore"; import persistStore from "redux-persist/es/persistStore";
import accessTokensMiddleware from "./middleware/accessTokensMiddleware"; import accessTokensMiddleware from "./middleware/accessTokensMiddleware";
import authenticationMiddleware from "./middleware/authenticationMiddleware";


const composeEnhancers = const composeEnhancers =
(window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&
loadingMiddleware, loadingMiddleware,
requestStatusMiddleware, requestStatusMiddleware,
internalServerErrorMiddleware, internalServerErrorMiddleware,
accessTokensMiddleware
accessTokensMiddleware,
authenticationMiddleware
) )
) )
); );

+ 24
- 0
src/store/middleware/authenticationMiddleware.js Просмотреть файл

import i18next from "i18next";
import { attachPostRequestListener } from "../../request";
import { logoutUser } from "../actions/login/loginActions";
import { makeErrorToastMessage } from "../utils/makeToastMessage";

//Interceptor unique name
export const authenticationMiddlewareInterceptorName = "AUTHENTICATION_MIDDLEWARE";

export default ({ dispatch }) =>
(next) =>
(action) => {
attachPostRequestListener((error) => {
if (!error.response) {
return makeErrorToastMessage(i18next.t("apiErrors.somethingWentWrong"));
}
if (error.response.status === 401) {
dispatch(logoutUser());
return makeErrorToastMessage(i18next.t("apiErrors.somethingWentWrong"));
}
return Promise.reject(error);
}, authenticationMiddlewareInterceptorName);

next(action);
};

Загрузка…
Отмена
Сохранить