Files
spring-jwt/customer-vue/src/main.js
hoon7566 f1ecaec79c feat(customer vue, customer-gateway-service): SSL 적용
- customer vue SSL적용
- customer gateway service SSL적용
2022-03-04 14:47:50 +09:00

48 lines
1.4 KiB
JavaScript

import Vue from 'vue';
import App from './App.vue';
import vuetify from "@/plugins/vuetify";
import router from "./router/router.js";
import axios from "axios";
import auth from "@/api/auth";
import jwt from "@/common/jwt";
axios.defaults.withCredentials = true;
Vue.config.productionTip = false
new Vue({
vuetify,
router,
render: h => h(App),
}).$mount('#app')
axios.interceptors.request.use(function (config) {
config.headers.Authorization = "Bearer " + jwt.getToken();
return config;
});
axios.interceptors.response.use(
(response) => {
return response;
},
async (error) => {
const originalRequest = error.config;
if (error.response.status === 401) {
let code = error.response.data.code;
if (code === "EXPIRED") {
console.log("## expired");
try {
const accessToken = await auth.requestReissue();
originalRequest.headers.Authorization = "Bearer " + accessToken;
return axios(originalRequest);
} catch (reissueError) {
window.location.href = process.env.VUE_APP_BASEURL+"/login";
alert("권한이 없습니다. 다시 로그인 해주세요");
}
}
window.location.href = process.env.VUE_APP_BASEURL+"/login";
alert("권한이 없습니다. 다시 로그인해주세요.");
}
return Promise.reject(error);
}
);