Lazar Kostic 3 лет назад
Родитель
Сommit
ada8f7e7f0

+ 0
- 1
src/pages/GoogleAuthCallback/GoogleAuthCallback.js Просмотреть файл

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;

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

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

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

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

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

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

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

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

+ 9
- 9
src/store/saga/loginSaga.js Просмотреть файл

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

+ 5
- 6
src/store/saga/registerSaga.js Просмотреть файл

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



+ 2
- 9
src/util/helpers/rejectErrorCodeHelper.js Просмотреть файл

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

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