수정
This commit is contained in:
@@ -6,7 +6,6 @@ import {
|
||||
getLocalStorage,
|
||||
setLocalStorage
|
||||
} from '@/shared/lib';
|
||||
import { finalizeConfig } from './utils';
|
||||
import { appBridge } from '@/utils/appBridge';
|
||||
import { LoginResponse } from '@/entities/user/model/types';
|
||||
import { getHeaderUserAgent } from '@/shared/constants/url';
|
||||
@@ -14,7 +13,16 @@ import { useAppBridge } from '@/hooks';
|
||||
import { useUserInfo } from '@/entities/user/lib/use-user-info';
|
||||
import { useStore } from '@/shared/model/store';
|
||||
import { login } from '@/entities/user/api/use-login-mutation';
|
||||
import { useNavigate } from 'react-router';
|
||||
import { useNavigate } from '@/shared/lib/hooks';
|
||||
|
||||
const finalizeConfig = (config: InternalAxiosRequestConfig) => {
|
||||
const { params, data } = config;
|
||||
return {
|
||||
...config,
|
||||
params,
|
||||
data,
|
||||
};
|
||||
};
|
||||
|
||||
const onRequestFulfilled = (config: InternalAxiosRequestConfig) => {
|
||||
config.headers['Content-Type'] = 'application/json;charset=UTF-8';
|
||||
@@ -37,6 +45,7 @@ const onRequestFulfilled = (config: InternalAxiosRequestConfig) => {
|
||||
};
|
||||
|
||||
const onRequestRejected = (error: any) => {
|
||||
console.log('onRequestRejected --> ', error);
|
||||
return Promise.reject(error);
|
||||
};
|
||||
|
||||
@@ -47,14 +56,11 @@ const onResponseFulfilled = (response: AxiosResponse) => {
|
||||
};
|
||||
};
|
||||
|
||||
export const onResponseRejected = (error: AxiosError) => {
|
||||
|
||||
const onResponseRejected = (error: AxiosError) => {
|
||||
console.log('onResponseRejected --> ', error);
|
||||
console.log('error?.status -> ', error?.status, error?.status === 401)
|
||||
|
||||
if(error?.status === 401){
|
||||
if(appBridge.isNativeEnvironment()){
|
||||
appBridge.safeCall(() => appBridge.requestRefreshToken()).then((token: LoginResponse) => {
|
||||
return appBridge.safeCall(() => appBridge.requestRefreshToken()).then((token: LoginResponse) => {
|
||||
setLocalStorage(StorageKeys.TokenType, token.tokenType);
|
||||
setLocalStorage(StorageKeys.AccessToken, token.accessToken);
|
||||
setLocalStorage(StorageKeys.RefreshToken, token.refreshToken);
|
||||
@@ -81,9 +87,7 @@ export const onResponseRejected = (error: AxiosError) => {
|
||||
id: 'woowahan5',
|
||||
password: 'nictest00'
|
||||
};
|
||||
login(params).then((result: LoginResponse) => {
|
||||
result.usrid = params.id;
|
||||
|
||||
return login(params).then((result: LoginResponse) => {
|
||||
setLocalStorage(StorageKeys.TokenType, result.tokenType);
|
||||
setLocalStorage(StorageKeys.AccessToken, result.accessToken);
|
||||
setLocalStorage(StorageKeys.RefreshToken, result.refreshToken);
|
||||
@@ -92,7 +96,7 @@ export const onResponseRejected = (error: AxiosError) => {
|
||||
setLocalStorage(StorageKeys.MenuGrants, result.menuGrants);
|
||||
setLocalStorage(StorageKeys.ClientAddressIP, result.clientAddressIP);
|
||||
setLocalStorage(StorageKeys.Requires2FA, result.requires2FA);
|
||||
setLocalStorage(StorageKeys.Usrid, result.usrid);
|
||||
setLocalStorage(StorageKeys.Usrid, params.id);
|
||||
|
||||
if(appBridge.isNativeEnvironment()){
|
||||
setLocalStorage(StorageKeys.DeviceId, result.deviceId);
|
||||
@@ -102,12 +106,13 @@ export const onResponseRejected = (error: AxiosError) => {
|
||||
useStore.getState().UserStore.setUserInfo({
|
||||
...result
|
||||
});
|
||||
location.reload();
|
||||
return error.config? axios.request(error.config): null;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return new Promise((_resolve, reject) => {
|
||||
if(checkIsAxiosError(error)){
|
||||
// iOS의 경우 window에서 unload event가 일어날때 네트워크 에러가 발생하곤 해서 이런 케이스를 방지하기 위해 지연시킴
|
||||
|
||||
Reference in New Issue
Block a user