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

36 lines
851 B
JavaScript

import routes from './routes.js'
import token from './token.js'
export default ($env) => {
token.setBaseUrl($env.root)
token.wrapAxios($env.$axios)
3 months ago
$env.$G.token = token
let user = token.body()
$env.$G.user = user
$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()) {
3 months ago
token.logout(to.fullPath)
}
if (!token.check('app', '', 2)) {
next('/')
}
} else {
next();
}
};
$env.$axios.interceptors.response.use(function(response) {
console.log(response)
return response?.data || response;
}, function(error) {
error = error?.response?.data || error?.response || error
return Promise.reject(error);
});
}