| | |
| | | '/eService/authenticate', |
| | | '/login/validate/get_img_code', |
| | | '/login/validate/verify_img_code', |
| | | '/api/access_analysis/insert' |
| | | ]; |
| | | |
| | | const BASE_URL = process.env.BASE_URL!; |
| | | |
| | | function sanitizeBaseUrl(baseUrl: string): string { |
| | | const pattern = /^(https?:\/\/).+/i; |
| | | if (!pattern.test(baseUrl)) { |
| | | throw new Error('Invalid BASE_URL'); |
| | | } |
| | | const cleanedBaseUrl = cleanUrl(baseUrl); |
| | | return cleanedBaseUrl; |
| | | } |
| | | |
| | | function cleanUrl(url: string): string { |
| | | const cleanedUrl = url.replace(/[^a-zA-Z0-9:/._-]/g, ''); |
| | | return cleanedUrl; |
| | | } |
| | | |
| | | |
| | | export const http = axios.create({ |
| | | baseURL: process.env.BASE_URL, |
| | | baseURL: sanitizeBaseUrl(BASE_URL), |
| | | withCredentials: true |
| | | }); |
| | | |
| | |
| | | |
| | | function addHttpHeader(config: AxiosRequestConfig): void { |
| | | config.headers = { |
| | | Authorization: 'Bearer ' + localStorage.getItem('id_token') |
| | | Authorization: 'Bearer ' + localStorage.getItem('id_token'), |
| | | 'content-type': 'application/json' |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | function showErrorMessageBox(error: any): void { |
| | | setTimeout(() => { |
| | | console.log('errorerrorerror', error.config); |
| | | // NOTE: 此為 HOT FIX 顧問登入失敗後,會出現逾時的 dialog [Tomas, 2022/7/20 14:21] |
| | | if(error.config.url.includes('api/eService/authenticate')) return; |
| | | if(error.config.url.includes('/eService/authenticate')) return; |
| | | if (error.config.url.includes('/otp/sendOtp')) { |
| | | messageBoxService.showErrorMessage('', error); |
| | | return |