| axios({ | axios({ | ||||
| method: "GET", | method: "GET", | ||||
| url: `http://localhost:1337/api/auth/google/callback?${search}`, | url: `http://localhost:1337/api/auth/google/callback?${search}`, | ||||
| withCredentials: true, | |||||
| }).then((res) => { | }).then((res) => { | ||||
| if (res.data?.jwt) { | if (res.data?.jwt) { | ||||
| const user = res.data?.user; | const user = res.data?.user; |
| headers: { | headers: { | ||||
| "Content-Type": "application/json", | "Content-Type": "application/json", | ||||
| }, | }, | ||||
| withCredentials: true, | |||||
| //withCredentials: true, | |||||
| // paramsSerializer: (params) => | // paramsSerializer: (params) => | ||||
| // queryString.stringify(params, { arrayFormat: 'comma' }), | // queryString.stringify(params, { arrayFormat: 'comma' }), | ||||
| }); | }); |
| import requestStatusMiddleware from "./middleware/requestStatusMiddleware"; | import requestStatusMiddleware from "./middleware/requestStatusMiddleware"; | ||||
| import internalServerErrorMiddleware from "./middleware/internalServerErrorMiddleware"; | import internalServerErrorMiddleware from "./middleware/internalServerErrorMiddleware"; | ||||
| import accessTokenMiddleware from "./middleware/accessTokenMiddleware"; | import accessTokenMiddleware from "./middleware/accessTokenMiddleware"; | ||||
| import authenticationMiddleware from "./middleware/authenticationMiddleware"; | |||||
| // import authenticationMiddleware from "./middleware/authenticationMiddleware"; | |||||
| const composeEnhancers = | const composeEnhancers = | ||||
| (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && | (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && | ||||
| requestStatusMiddleware, | requestStatusMiddleware, | ||||
| internalServerErrorMiddleware, | internalServerErrorMiddleware, | ||||
| accessTokenMiddleware, | accessTokenMiddleware, | ||||
| authenticationMiddleware | |||||
| //authenticationMiddleware | |||||
| ) | ) | ||||
| ) | ) | ||||
| ); | ); |
| refreshToken: refresh, | refreshToken: refresh, | ||||
| }, | }, | ||||
| { | { | ||||
| withCredentials: true, | |||||
| headers: { Authorization: `Bearer ${jwtToken}` }, | headers: { Authorization: `Bearer ${jwtToken}` }, | ||||
| } | } | ||||
| ); | ); | ||||
| const newToken = axiosResponse.data.jwt; | |||||
| const newTokens = axiosResponse.data; | |||||
| response.headers.Authorization = `Bearer ${newToken}`; | |||||
| response.headers.Authorization = `Bearer ${newTokens.jwt}`; | |||||
| dispatch(refreshUserToken(newToken)); | |||||
| dispatch(refreshUserToken(newTokens)); | |||||
| } | } | ||||
| return Promise.resolve(response); | return Promise.resolve(response); |
| } | } | ||||
| if ( | if ( | ||||
| error.response.config.url !== apiEndpoints.authentications.login && | error.response.config.url !== apiEndpoints.authentications.login && | ||||
| error.response.config.url !== | |||||
| apiEndpoints.authentications.confirmSecurityQuestion && | |||||
| error.response.status === 4003 | |||||
| error.response.status === 401 | |||||
| ) { | ) { | ||||
| return dispatch(logoutUser()); | return dispatch(logoutUser()); | ||||
| } | } |
| yield call(payload.handleApiResponseSuccess); | yield call(payload.handleApiResponseSuccess); | ||||
| } | } | ||||
| } catch (e) { | } catch (e) { | ||||
| // if (e.response && e.response.data) { | |||||
| // const errorMessage = yield call(rejectErrorCodeHelper, e); | |||||
| // yield put(fetchUserError(errorMessage)); | |||||
| // } | |||||
| yield put(fetchUserError('Email or password incorrect!')); | |||||
| if (e.response && e.response.data) { | |||||
| const errorMessage = yield call(rejectErrorCodeHelper, e); | |||||
| yield put(fetchUserError(errorMessage)); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| function* authenticateUser() { | function* authenticateUser() { | ||||
| export function* refreshToken({ payload }) { | export function* refreshToken({ payload }) { | ||||
| try { | try { | ||||
| const newTokenDecoded = jwt.decode(payload); | |||||
| const newTokenDecoded = jwt.decode(payload.jwt); | |||||
| yield call(authScopeSetHelper, JWT_TOKEN, payload); | |||||
| addHeaderToken(payload); | |||||
| yield call(authScopeSetHelper, JWT_TOKEN, payload.jwt); | |||||
| yield call(authScopeSetHelper, JWT_REFRESH_TOKEN, payload.refreshToken); | |||||
| addHeaderToken(payload.jwt); | |||||
| yield put(setUser(newTokenDecoded)); | yield put(setUser(newTokenDecoded)); | ||||
| yield put(updateUserToken(payload)); | |||||
| yield put(updateUserToken(payload.jwt)); | |||||
| return true; | return true; | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log(error); // eslint-disable-line | console.log(error); // eslint-disable-line |
| } from "../actions/register/registerActions"; | } from "../actions/register/registerActions"; | ||||
| import { JWT_TOKEN } from "../../constants/localStorage"; | import { JWT_TOKEN } from "../../constants/localStorage"; | ||||
| import { authScopeSetHelper } from "../../util/helpers/authScopeHelpers"; | import { authScopeSetHelper } from "../../util/helpers/authScopeHelpers"; | ||||
| // import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||||
| import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||||
| function* registerUser({ payload }) { | function* registerUser({ payload }) { | ||||
| try { | try { | ||||
| yield call(payload.handleApiResponseSuccess); | yield call(payload.handleApiResponseSuccess); | ||||
| } | } | ||||
| } catch (e) { | } catch (e) { | ||||
| // if (e.response && e.response.data) { | |||||
| // const errorMessage = yield call(rejectErrorCodeHelper, e); | |||||
| // yield put(registerUserError(errorMessage)); | |||||
| // } | |||||
| yield put(registerUserError('Email or username already taken!')); | |||||
| if (e.response && e.response.data) { | |||||
| const errorMessage = yield call(rejectErrorCodeHelper, e); | |||||
| yield put(registerUserError(errorMessage)); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| import i18next from 'i18next'; | |||||
| export const rejectErrorCodeHelper = (error) => { | export const rejectErrorCodeHelper = (error) => { | ||||
| if (error?.response?.data?.Errors) { | |||||
| const errorCode = error?.response?.data?.Errors[0]?.Code; | |||||
| const errorMessage = errorCode | |||||
| ? i18next.t(`apiErrors.${errorCode}`) | |||||
| : i18next.t('apiErrors.SomethingWentWrong'); | |||||
| if (error?.response?.data?.error) { | |||||
| const errorMessage = error?.response?.data?.error.message; | |||||
| return errorMessage; | return errorMessage; | ||||
| } | } | ||||
| return i18next.t('apiErrors.SomethingWentWrong'); | |||||
| }; | }; |