@@ -86,10 +65,10 @@ const validateLogin = computed(() => {
@@ -97,7 +76,7 @@ const validateLogin = computed(() => {
@@ -106,15 +85,15 @@ const validateLogin = computed(() => {
- 아이디 찾기
|
- 비밀번호 찾기
|
- 회원가입
diff --git a/nuxt/pages/login/join.vue b/nuxt/pages/login/join.vue
deleted file mode 100644
index 6e70732..0000000
--- a/nuxt/pages/login/join.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
-
-
- 참여기관 회원가입
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/nuxt/pages/login/pw.vue b/nuxt/pages/login/pw.vue
deleted file mode 100644
index 204d8a8..0000000
--- a/nuxt/pages/login/pw.vue
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
- 비밀번호 재설정
-
-
-
-
-
- 휴대폰으로 찾기
- 이메일로 찾기
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @
-
-
-
-
- 직접 입력
- gmail.com
- naver.com
- daum.net
-
-
-
-
-
-
- 휴대폰 인증
-
-
- 이메일 인증
-
-
-
-
-
-
-
diff --git a/nuxt/stores/login/index.ts b/nuxt/stores/login/index.ts
new file mode 100644
index 0000000..180d45b
--- /dev/null
+++ b/nuxt/stores/login/index.ts
@@ -0,0 +1,27 @@
+import {useAxios} from "~/composables/useAxios";
+import type {LoginRequestType, LoginResponseType} from "~/types/login";
+import { cloneDeep } from 'lodash-es';
+import {
+ DEFAULT_AUTHENTICATION_VALUE,
+ DEFAULT_AUTHORIZATION_VALUE
+} from '~/constants/login';
+
+export const useAuthStore = defineStore('authStore', () => {
+ const loginRequest = ref(
+ cloneDeep(DEFAULT_AUTHENTICATION_VALUE)
+ );
+
+ const loginResponse = ref(
+ cloneDeep(DEFAULT_AUTHORIZATION_VALUE)
+ );
+
+ const LoginAPI = async () => {
+ return await useAxios().post(`/api/login`, loginRequest.value);
+ };
+
+ return {
+ loginRequest,
+ loginResponse,
+ LoginAPI
+ };
+});
\ No newline at end of file
diff --git a/nuxt/types/login/index.ts b/nuxt/types/login/index.ts
new file mode 100644
index 0000000..0e6eb46
--- /dev/null
+++ b/nuxt/types/login/index.ts
@@ -0,0 +1,33 @@
+import type { MenuType } from '../sys/menu';
+
+export type LoginRequestType = {
+ memberId: string;
+ password: string;
+ remember: boolean;
+};
+
+export type LoginResponseType = {
+ memberName: string;
+ instNm: string;
+ deptNm: string;
+ menuList: AuthorizationMenuType[];
+ permitApiList: PermitApiType[];
+ authenticated: boolean;
+};
+
+export type AuthorizationMenuType = {
+ menuId: string;
+ upMenuId: string;
+ menuDepth: number;
+ menuName: string;
+ menuType: MenuType;
+ menuUrl: string;
+ bcId: string;
+ contentId: string;
+
+ children: AuthorizationMenuType[];
+};
+
+export type PermitApiType = {
+ menuUrl: string;
+};
diff --git a/nuxt/types/sys/menu/index.ts b/nuxt/types/sys/menu/index.ts
new file mode 100644
index 0000000..a2a91bd
--- /dev/null
+++ b/nuxt/types/sys/menu/index.ts
@@ -0,0 +1,25 @@
+export type MenuType = {
+ menuId: string;
+ siteId: string;
+ upMenuId: string;
+ menuDepth: number;
+ menuOrder: number;
+ menuName: string;
+ menuType: 'MENU' | 'PAGE' | 'API' | 'TAB' | 'COMMON_MENU' | 'COMMON_API';
+ menuFeature: 'PAGE' | 'LIST' | 'DETAIL' | 'CREATE' | 'UPDATE' | 'DELETE';
+ menuLayout: string;
+ menuUrl: string;
+ menuMethod: string;
+ menuDescription: string;
+ menuLinkTarget: 'CURRENT' | 'BLANK';
+ menuUseSatisfaction: boolean;
+ menuUseMngInfo: boolean;
+ menuMngId: string;
+ menuStatus: 'ENABLED' | 'HIDDEN' | 'DISABLED';
+ delYn: boolean;
+ useYn: boolean;
+ frstRgtrId: string;
+ frstRegDt: string;
+ lastMdfrId: string;
+ lastMdfcnDt: string;
+};