[메뉴 권한 1차 작업]

This commit is contained in:
2025-09-23 14:15:32 +09:00
parent 9bbc4f82b6
commit 29fbda149b
10 changed files with 1808 additions and 596 deletions

View File

@@ -9,13 +9,14 @@ export const useUserStore = defineStore(
} | null>(null);
const token = ref<string | null>(null);
// 추후 제거 필요
const isAdmin = true;
// 권한 스토어 참조
const permissionsStore = usePermissionsStore();
interface LoginData {
userId: string;
name: string;
}
const login = async (userId: string, password: string) => {
const { success, data, description } = await useApi<
ApiResponse<LoginData>
@@ -27,6 +28,10 @@ export const useUserStore = defineStore(
if (success) {
user.value = data;
isLoggedIn.value = true;
// 로그인 성공 시 권한 데이터 가져오기
await permissionsStore.fetchPermissions();
return { success, data };
} else {
return {
@@ -39,21 +44,13 @@ export const useUserStore = defineStore(
const logout = () => {
user.value = null;
isLoggedIn.value = false;
// 권한 데이터도 초기화
permissionsStore.clearPermissions();
useApi("/members/logout", { method: "post" });
};
const checkAuth = () => {
// 페이지 로드 시 로컬 스토리지에서 사용자 정보 복원
const savedUser = localStorage.getItem("user");
const savedToken = localStorage.getItem("token");
if (savedUser && savedToken) {
user.value = JSON.parse(savedUser);
token.value = savedToken;
isLoggedIn.value = true;
}
};
const setToken = (accessToken: string) => {
token.value = accessToken;
};
@@ -62,24 +59,15 @@ export const useUserStore = defineStore(
return token;
};
// 초기 인증 상태 확인
if (import.meta.client) {
checkAuth();
}
return {
// 상태
isLoggedIn,
user,
token,
// 게터
isAdmin,
// 액션
login,
logout,
checkAuth,
setToken,
getToken,
};