ソースを参照

Finished feature #1988

bugfix/1988
Djordje Mitrovic 3年前
コミット
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 ファイルの表示

@@ -7,6 +7,7 @@ import requestStatusMiddleware from "./middleware/requestStatusMiddleware";
import internalServerErrorMiddleware from "./middleware/internalServerErrorMiddleware";
import persistStore from "redux-persist/es/persistStore";
import accessTokensMiddleware from "./middleware/accessTokensMiddleware";
import authenticationMiddleware from "./middleware/authenticationMiddleware";

const composeEnhancers =
(window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&
@@ -24,7 +25,8 @@ export const store = createStore(
loadingMiddleware,
requestStatusMiddleware,
internalServerErrorMiddleware,
accessTokensMiddleware
accessTokensMiddleware,
authenticationMiddleware
)
)
);

+ 24
- 0
src/store/middleware/authenticationMiddleware.js ファイルの表示

@@ -0,0 +1,24 @@
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);
};

読み込み中…
キャンセル
保存