import { computed, onMounted, ref } from 'vue'; import { getToken, logout, setToken } from '@/shared/auth'; /** * Popup 的登录状态与操作。 */ export const useLogin = () => { const token = ref(null); /** 当前是否已登录。 */ const isLoggedIn = computed(() => token.value !== null); /** * 登录并保存 token。 */ const handleLogin = async () => { const value = 'xxx'; await setToken(value); token.value = value; }; /** * 退出登录并清理本地状态。 */ const handleLogout = async () => { await logout(); token.value = null; }; /** * 组件挂载时,从存储恢复 token。 */ onMounted(async () => { token.value = await getToken(); }); return { isLoggedIn, handleLogin, handleLogout, }; };