hmkim 03-28
250328 김혜민 로그인정책 추가
@ed13c26850fcf2d209133a4158fd554afc4c8353
 
client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue (added)
+++ client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
@@ -0,0 +1,89 @@
+<template>
+    <div class="content admin-style">
+      <div class="admin-page-title  point-font2 mb30">
+            <p>중복 로그인 허용 설정</p>
+        </div>
+      <label>
+        <input type="checkbox" v-model="allowMultipleLogin" @change="saveByLoginPolicy" />
+        <span class="slider"></span>
+      </label>
+      <p>{{ allowMultipleLogin ? '중복 로그인을 허용하고 있습니다.' : '중복 로그인을 허용하지 않습니다.' }}</p>
+      <h2>로그인 방식 설정</h2>
+      <p style="color: red;"> ※ 로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.</p>
+    <div>
+      <label>
+        <input type="radio" value="J" v-model="loginMode" @change="updateLoginMode" />
+        JWT 방식
+      </label>
+      <label>
+        <input type="radio" value="S" v-model="loginMode" @change="updateLoginMode" />
+        SESSION 방식
+      </label>
+    </div>
+    <p>
+      현재 로그인 방식은 <strong>{{ loginModeLabel  }}</strong> 입니다.
+    </p>
+    </div>
+  </template>
+  
+  <script>
+  import { findAllByLoginPolicy, saveByLoginPolicy, findAllByLoginMode, saveByLoginMode } from '../../../../../resources/api/loginPolicy'
+  
+  export default {
+    data() {
+      return {
+        allowMultipleLogin:  null,
+        loginMode : null
+      }
+    },
+    created() {
+      this.findAll();
+    },
+    mounted() {
+    },
+    computed: {
+      loginModeLabel() {
+        return this.loginMode === 'J' ? 'JWT' : 'SESSION';
+      }
+    },
+    methods: {
+      async findAll() {
+        try {
+          const res1 = await findAllByLoginPolicy();
+          this.allowMultipleLogin = res1.data.data;
+
+          const res2 = await findAllByLoginMode();
+          this.loginMode = res2.data.data;
+          console.log("this.isAllowed", this.allowMultipleLogin);
+        } catch (err) {
+          alert('설정 정보를 불러오는 데 실패했습니다.');
+        }
+      },
+      async saveByLoginPolicy() {
+      try {
+        await saveByLoginPolicy(this.allowMultipleLogin);
+        alert('중복 로그인 설정이 저장되었습니다.');
+      } catch (err) {
+        alert('중복 로그인 설정 저장 실패');
+      }
+    },
+    async saveByLoginMode() {
+      const confirmed = confirm(
+        '로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?'
+      );
+      if (!confirmed) return;
+
+      try {
+        console.log(this.loginMode);
+        await saveByLoginMode(this.loginMode);
+        alert('로그인 방식이 변경되었습니다.\n다시 로그인해주세요.');
+        store.commit("setStoreReset");
+        window.location = '/login.page';
+        return Promise.reject(refreshError);
+      } catch (err) {
+        alert('로그인 방식 저장 실패');
+      }
+    }
+    }
+  }
+  </script>(No newline at end of file)
Add a comment
List