You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/ui/env.js

35 lines
836 B
JavaScript

import routes from './routes.js'
import token from './token.js'
export default ($env) => {
console.log($env, $vyes.root)
token.setBaseUrl($env.root)
token.wrapAxios($env.$axios)
$env.$G.token = token
$env.$G.user = token.body()
$env.$router.addRoutes(routes)
$env.$router.beforeEnter = async (to, from, next) => {
if (to.meta && to.meta.auth) {
if (token.isExpired()) {
await token.refresh()
}
if (token.isExpired()) {
token.logout(to.fullPath)
}
} else {
next();
}
};
$env.$axios.interceptors.response.use(function(response) {
if (response?.data) {
return response.data
}
return response;
}, function(error) {
let data = error.response ? error.response.data : error.response
return Promise.reject(data.message || data);
});
}