mirror of
https://github.com/koel/koel
synced 2024-12-22 18:43:21 +00:00
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import Vue from 'vue';
|
|
import ls from './services/ls';
|
|
import NProgress from 'nprogress';
|
|
|
|
let app = new Vue(require('./app.vue'));
|
|
|
|
Vue.config.debug = false;
|
|
Vue.use(require('vue-resource'));
|
|
Vue.http.options.root = '/api';
|
|
Vue.http.interceptors.push({
|
|
request(r) {
|
|
let token = ls.get('jwt-token');
|
|
|
|
if (token) {
|
|
Vue.http.headers.common.Authorization = `Bearer ${token}`;
|
|
}
|
|
|
|
return r;
|
|
},
|
|
|
|
response(r) {
|
|
NProgress.done();
|
|
|
|
if (r.status === 400 || r.status === 401) {
|
|
if (r.request.method !== 'POST' && r.request.url !== 'me') {
|
|
// This is not a failed login. Log out then.
|
|
app.logout();
|
|
}
|
|
}
|
|
|
|
if (r.headers && r.headers.Authorization) {
|
|
ls.set('jwt-token', r.headers.Authorization);
|
|
}
|
|
|
|
if (r.data && r.data.token && r.data.token.length > 10) {
|
|
ls.set('jwt-token', r.data.token);
|
|
}
|
|
|
|
return r;
|
|
},
|
|
});
|
|
|
|
/**
|
|
* Thor! Odin's son, protector of Mankind
|
|
* Ride to meet your fate, your destiny awaits
|
|
* Thor! Hlödyn's son, protector of Mankind
|
|
* Ride to meet your fate, Ragnarök awaits
|
|
*/
|
|
app.$mount('body');
|