refactor(ui): Rename $vbase to $auth across frontend

- Rename $mod.$vbase to $mod.$auth in env.js initialization
    - Add guard condition to prevent duplicate VBase initialization
    - Update all page and layout templates to use $auth instead of $vbase
    - Update route guard in routes.js to reference $mod.$auth
v4
veypi 8 hours ago
parent 529ac0d084
commit a63dc65ab6

@ -9,15 +9,14 @@ export default async ($mod) => {
} catch (e) { } catch (e) {
console.error('Failed to load langs.json', e) console.error('Failed to load langs.json', e)
} }
if (!$mod.$auth) {
// Initialize VBase Service // Initialize VBase Service
$mod.users = {} $mod.users = {}
const vbase = new VBase('vb', $mod.scoped, null, $mod.users); // Relative path const vbase = new VBase('vb', $mod.scoped, null, $mod.users); // Relative path
$mod.$vbase = vbase; $mod.$auth = vbase;
// Wrap Axios: add auth header // Wrap Axios: add auth header
vbase.wrapAxios($mod.$axios); vbase.wrapAxios($mod.$axios);
}
$mod.$axios.interceptors.response.use(function(response) { $mod.$axios.interceptors.response.use(function(response) {
return response?.data return response?.data
}, function(error) { }, function(error) {

@ -52,7 +52,7 @@
</div> </div>
</body> </body>
<script setup> <script setup>
user = $mod.$vbase.user; user = $mod.$auth.user;
dropdownItems = [ dropdownItems = [
{label: "个人中心", value: "profile"}, {label: "个人中心", value: "profile"},
{label: "退出登录", value: "logout", divided: true} {label: "退出登录", value: "logout", divided: true}
@ -62,7 +62,7 @@
if (val === 'profile') { if (val === 'profile') {
$router.push('/profile'); $router.push('/profile');
} else if (val === 'logout') { } else if (val === 'logout') {
$mod.$vbase.logout(); $mod.$auth.logout();
} }
}; };
</script> </script>

@ -123,7 +123,7 @@
</body> </body>
<script setup> <script setup>
collapsed = false; collapsed = false;
user = $mod.$vbase.user; user = $mod.$auth.user;
// Define Menu Items // Define Menu Items
menuItems = [ menuItems = [
@ -146,7 +146,7 @@
toggleCollapse = () => { toggleCollapse = () => {
collapsed = !collapsed; collapsed = !collapsed;
}; };
console.log($vbase.PermAdmin("*")) console.log($auth.PermAdmin("*"))
</script> </script>
</html> </html>

@ -157,7 +157,7 @@
{label: () => $t('nav.oauth_providers'), icon: "<i class='fas fa-id-card'></i>", path: "/oauth/providers"}, {label: () => $t('nav.oauth_providers'), icon: "<i class='fas fa-id-card'></i>", path: "/oauth/providers"},
{label: () => $t('nav.settings'), icon: "<i class='fas fa-cog'></i>", path: "/settings"}, {label: () => $t('nav.settings'), icon: "<i class='fas fa-cog'></i>", path: "/settings"},
]; ];
user = $vbase.user || {} user = $auth.user || {}
dropdownOpen = false dropdownOpen = false
toggleDropdown = (event) => { toggleDropdown = (event) => {
@ -168,7 +168,7 @@
logout = (event) => { logout = (event) => {
event.stopPropagation() event.stopPropagation()
dropdownOpen = false dropdownOpen = false
$vbase.logout(window.location.href) $auth.logout(window.location.href)
} }
</script> </script>

@ -492,7 +492,7 @@
return; return;
} }
const data = await $mod.$vbase.oauthCallback(provider, code, state); const data = await $mod.$auth.oauthCallback(provider, code, state);
if (data.access_token || data.token) { if (data.access_token || data.token) {
// Already bound, login success (token set by vbase) // Already bound, login success (token set by vbase)
@ -527,7 +527,7 @@
submitting = true; submitting = true;
try { try {
const data = await $mod.$vbase.bindAccount(tempToken, bindForm.username, bindForm.password); const data = await $mod.$auth.bindAccount(tempToken, bindForm.username, bindForm.password);
$message.success($t('auth.bind_success') || 'Binding successful'); $message.success($t('auth.bind_success') || 'Binding successful');
setTimeout(() => $router.push('/'), 1000); setTimeout(() => $router.push('/'), 1000);
@ -546,7 +546,7 @@
submitting = true; submitting = true;
try { try {
const data = await $mod.$vbase.bindRegister(tempToken, regForm.username, regForm.email || undefined); const data = await $mod.$auth.bindRegister(tempToken, regForm.username, regForm.email || undefined);
$message.success($t('auth.register_success') || 'Registration successful'); $message.success($t('auth.register_success') || 'Registration successful');
setTimeout(() => $router.push('/'), 1000); setTimeout(() => $router.push('/'), 1000);

@ -690,7 +690,7 @@
} }
try { try {
await $mod.$vbase.request('POST', '/api/verification/send', { await $mod.$auth.request('POST', '/api/verification/send', {
type: type, type: type,
target: signInForm.target, target: signInForm.target,
purpose: 'login' purpose: 'login'
@ -729,16 +729,16 @@
} }
const type = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(signInForm.target) ? 'email' : 'phone'; const type = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(signInForm.target) ? 'email' : 'phone';
const data = await $mod.$vbase.request('POST', '/api/auth/login/code', { const data = await $mod.$auth.request('POST', '/api/auth/login/code', {
type: type, type: type,
target: signInForm.target, target: signInForm.target,
code: signInForm.code code: signInForm.code
}); });
if (data && data.access_token) { if (data && data.access_token) {
$mod.$vbase.token = data.access_token; $mod.$auth.token = data.access_token;
if (data.refresh_token) $mod.$vbase.refreshToken = data.refresh_token; if (data.refresh_token) $mod.$auth.refreshToken = data.refresh_token;
if (data.user) $mod.$vbase.user = data.user; if (data.user) $mod.$auth.user = data.user;
$message.success($t('auth.login_success')); $message.success($t('auth.login_success'));
if (redirect === '/' || redirect.startsWith('http')) { if (redirect === '/' || redirect.startsWith('http')) {
@ -755,7 +755,7 @@
throw new Error($t('auth.fill_all_fields')); throw new Error($t('auth.fill_all_fields'));
} }
const success = await $mod.$vbase.login(signInForm.username, signInForm.password); const success = await $mod.$auth.login(signInForm.username, signInForm.password);
if (success) { if (success) {
$message.success($t('auth.login_success')); $message.success($t('auth.login_success'));
@ -803,7 +803,7 @@
try { try {
// Use vbase.request for consistent API handling // Use vbase.request for consistent API handling
const data = await $mod.$vbase.request('POST', '/api/auth/register', { const data = await $mod.$auth.request('POST', '/api/auth/register', {
username: signUpForm.username, username: signUpForm.username,
email: signUpForm.email || undefined, email: signUpForm.email || undefined,
phone: signUpForm.phone || undefined, phone: signUpForm.phone || undefined,
@ -812,12 +812,12 @@
if (data && data.access_token) { if (data && data.access_token) {
// Auto login after register using vbase setters // Auto login after register using vbase setters
$mod.$vbase.token = data.access_token; $mod.$auth.token = data.access_token;
if (data.refresh_token) { if (data.refresh_token) {
$mod.$vbase.refreshToken = data.refresh_token; $mod.$auth.refreshToken = data.refresh_token;
} }
if (data.user) { if (data.user) {
$mod.$vbase.user = data.user; $mod.$auth.user = data.user;
} }
$message.success($t('auth.register_success')); $message.success($t('auth.register_success'));

@ -200,7 +200,7 @@
loadProviders = async () => { loadProviders = async () => {
try { try {
const res = await $vbase.request('GET', '/api/oauth/providers'); const res = await $auth.request('GET', '/api/oauth/providers');
providers = res.items || []; providers = res.items || [];
} catch (e) { } catch (e) {
$message.error(e.message); $message.error(e.message);

@ -239,7 +239,7 @@
</div> </div>
</body> </body>
<script setup> <script setup>
user = $mod.$vbase.user || {}; user = $mod.$auth.user || {};
loading = false; loading = false;
pwdLoading = false; pwdLoading = false;
passwordForm = {old_password: '', new_password: ''}; passwordForm = {old_password: '', new_password: ''};
@ -251,7 +251,7 @@
// Fetch fresh data // Fetch fresh data
loadUser = async () => { loadUser = async () => {
try { try {
user = await $mod.$vbase.fetchUser(); user = await $mod.$auth.fetchUser();
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
@ -310,7 +310,7 @@
}; };
handleLogout = async () => { handleLogout = async () => {
await $mod.$vbase.logout('/login'); await $mod.$auth.logout('/login');
}; };
// OAuth Helpers // OAuth Helpers

@ -40,7 +40,7 @@ export default ({ $mod }) => ({
beforeEnter: async (to, from, next) => { beforeEnter: async (to, from, next) => {
const isAuth = to.meta && to.meta.auth; const isAuth = to.meta && to.meta.auth;
const roles = to.meta && to.meta.roles; // Array of required roles const roles = to.meta && to.meta.roles; // Array of required roles
const vbase = $mod.$vbase const vbase = $mod.$auth
if (isAuth) { if (isAuth) {
if (vbase.isExpired()) { if (vbase.isExpired()) {

Loading…
Cancel
Save