瀏覽代碼

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);
};

Loading…
取消
儲存