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/root.html

58 lines
1.6 KiB
HTML

<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>oa</title>
<script type="module" key='vyes' src="http://test2.vyesai.com/vyes/v.js"></script>
<link href="/assets/libs/tailwind/tailwind.min.css" rel="stylesheet">
<link href="/assets/libs/animate/animate.min.css" rel="stylesheet">
<link href="/assets/libs/font-awesome/css/all.min.css" rel="stylesheet">
</head>
<body root class="h-full w-full">
<vrouter class="h-full w-full block">
<page-404></page-404>
</vrouter>
</body>
<script type='module' setup>
if (typeof $env !== 'undefined') {
const token = (await import(root + '/token.js')).default
token.setRoot(root)
token.wrapAxios($axios)
let user = token.body()
$env.Guser = user
$env.Gtoken = token.getToken()
$router.beforeEnter = async (to, from, next) => {
if (to.meta && to.meta.auth) {
// check if the user is authenticated
// next({ path: '/login' });
if (token.isExpired()) {
await token.refresh()
}
if (token.isExpired()) {
token.logout()
}
} else {
next()
}
};
$axios.interceptors.response.use(function (response) {
if (response.data && response.data.code === 0) {
return response.data.data
}
return response;
}, function (error) {
let data = error.response ? error.response.data : error.response
if (!data) return error.response
if (data.code >= 400) {
return Promise.reject(data.message)
}
return Promise.reject(data.message || data);
});
}
</script>
</html>