개발정리

[트러블 슈팅] vue.js axios 인터셉터 설정 본문

개발/중거거래사이트 클론

[트러블 슈팅] vue.js axios 인터셉터 설정

coffee. 2024. 2. 16. 19:03

이때 까지는 항상 컴포넌트 마다 axios를 임포트 해와서 CRUD를 구현 해 왔다.

하지만 그때마다 요청의 헤더에 토큰을 주입해서 전달하기 여간 귀찮은 일이 아닙니다.

그래서 찾아보던중 axios의 인터셉터 설정을 하면 요청마다 일일이 토큰을 주입하지 않아도 된다는 것을 알게되었습니다.

 

 

해결

import { createApp } from 'vue'
import router from './index.js'
import App from './App.vue'
import mitt from 'mitt';
import axios from 'axios';

axios.interceptors.request.use((config)=>{
    const token = localStorage.getItem('token');
    if(token){
        config.headers.Authorization=`Bearer ${token}`
    }
    return config;
});

const emitter = mitt();
const app=createApp(App);
app.config.globalProperties.emitter=emitter;
app.config.globalProperties.$axios=axios;
app.use(router);
app.mount('#app');

 

main.js 파일에 axios를 설정해 주었습니다.