From 8920cf32b364d6018da3a866e24e8d39e3b86087 Mon Sep 17 00:00:00 2001 From: 劉鈞霖 <benson@gmail.com> Date: 星期三, 15 十二月 2021 15:25:17 +0800 Subject: [PATCH] [ Ref ] 共用 localStorage service --- PAMapp/assets/ts/api/share.ts | 38 +++++++++++++++++++++++--------------- 1 files changed, 23 insertions(+), 15 deletions(-) diff --git a/PAMapp/assets/ts/api/share.ts b/PAMapp/assets/ts/api/share.ts index fe55bb2..835376c 100644 --- a/PAMapp/assets/ts/api/share.ts +++ b/PAMapp/assets/ts/api/share.ts @@ -1,10 +1,9 @@ -import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios'; +import { AxiosRequestConfig, AxiosError, AxiosResponse} from 'axios'; import ErrorMessageBox from '../errorService'; -import LocalStorage from '~/store/localStorage'; import axios from 'axios'; import _ from 'lodash'; -const notRequireInterceptorErrorUrl=[ +const notRequireInterceptorErrorUrl = [ '/otp/verify', '/eService/authenticate', '/login/validate/get_img_code', @@ -17,43 +16,52 @@ }); service.interceptors.request.use( - (config:AxiosRequestConfig)=>{ + (config: AxiosRequestConfig) => { loadingStart(); + addHttpHeader(config); return config; } ); service.interceptors.response.use( - (response:AxiosResponse)=>{ + (response: AxiosResponse) => { loadingFinish(); - return response; // maybe can use response.data + return response; }, - (error:AxiosError)=>{ + (error: AxiosError) => { loadingFinish(); showErrorMessageBox(error) return Promise.reject(error); } ); +function addHttpHeader(config: AxiosRequestConfig): void { + config.headers = { + Authorization: 'Bearer ' + localStorage.getItem('id_token') + } +} + function loadingStart(): void { - window.$nuxt.$loading.start(); + window.$nuxt.$loading.start(); }; function loadingFinish(): void { - window.$nuxt.$loading.finish(); + window.$nuxt.$loading.finish(); }; -function showErrorMessageBox(error:any):void{ - if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){ +function showErrorMessageBox(error: any): void { + // console.log('error', error, error.response); + if (!_.includes(notRequireInterceptorErrorUrl, error.config.url)) { switch (error.response.status) { case 401: - ErrorMessageBox('���暹��'); - window.$nuxt.$store.commit('localStorage/storageClear'); + Promise.all([ErrorMessageBox('���暹��'),window.$nuxt.$store.dispatch('localStorage.service/clearStorage')]).then(()=>{ + _.isEqual(window.$nuxt.$route.name, 'index') ? location.reload() : window.$nuxt.$router.push('/'); + }); break; + default: - ErrorMessageBox(); + ErrorMessageBox('', error); break; } - } }; -- Gitblit v1.8.0