Files
cpms_operation_platform/src/hooks/useAuth.ts
T

35 lines
678 B
TypeScript
Raw Normal View History

2026-07-14 10:31:17 +08:00
// src/hooks/useAuth.ts
import { useState } from './useState';
import { watch } from 'vue';
const TOKEN_KEY = 'MY_APP_AUTH_TOKEN';
function createAuth() {
const [token, setToken] = useState<string | null>(window.localStorage.getItem(TOKEN_KEY));
watch(token, (newToken) => {
if (newToken) {
window.localStorage.setItem(TOKEN_KEY, newToken);
} else {
window.localStorage.removeItem(TOKEN_KEY);
}
});
const login = (newToken: string) => {
setToken(newToken);
};
const logout = () => {
setToken(null);
};
return {
token,
isLoggedIn: () => !!token.value,
login,
logout,
};
}
export const auth = createAuth();