

250328 김혜민 로그인정책 추가
@ed13c26850fcf2d209133a4158fd554afc4c8353
+++ client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
... | ... | @@ -0,0 +1,89 @@ |
1 | +<template> | |
2 | + <div class="content admin-style"> | |
3 | + <div class="admin-page-title point-font2 mb30"> | |
4 | + <p>중복 로그인 허용 설정</p> | |
5 | + </div> | |
6 | + <label> | |
7 | + <input type="checkbox" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> | |
8 | + <span class="slider"></span> | |
9 | + </label> | |
10 | + <p>{{ allowMultipleLogin ? '중복 로그인을 허용하고 있습니다.' : '중복 로그인을 허용하지 않습니다.' }}</p> | |
11 | + <h2>로그인 방식 설정</h2> | |
12 | + <p style="color: red;"> ※ 로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.</p> | |
13 | + <div> | |
14 | + <label> | |
15 | + <input type="radio" value="J" v-model="loginMode" @change="updateLoginMode" /> | |
16 | + JWT 방식 | |
17 | + </label> | |
18 | + <label> | |
19 | + <input type="radio" value="S" v-model="loginMode" @change="updateLoginMode" /> | |
20 | + SESSION 방식 | |
21 | + </label> | |
22 | + </div> | |
23 | + <p> | |
24 | + 현재 로그인 방식은 <strong>{{ loginModeLabel }}</strong> 입니다. | |
25 | + </p> | |
26 | + </div> | |
27 | + </template> | |
28 | + | |
29 | + <script> | |
30 | + import { findAllByLoginPolicy, saveByLoginPolicy, findAllByLoginMode, saveByLoginMode } from '../../../../../resources/api/loginPolicy' | |
31 | + | |
32 | + export default { | |
33 | + data() { | |
34 | + return { | |
35 | + allowMultipleLogin: null, | |
36 | + loginMode : null | |
37 | + } | |
38 | + }, | |
39 | + created() { | |
40 | + this.findAll(); | |
41 | + }, | |
42 | + mounted() { | |
43 | + }, | |
44 | + computed: { | |
45 | + loginModeLabel() { | |
46 | + return this.loginMode === 'J' ? 'JWT' : 'SESSION'; | |
47 | + } | |
48 | + }, | |
49 | + methods: { | |
50 | + async findAll() { | |
51 | + try { | |
52 | + const res1 = await findAllByLoginPolicy(); | |
53 | + this.allowMultipleLogin = res1.data.data; | |
54 | + | |
55 | + const res2 = await findAllByLoginMode(); | |
56 | + this.loginMode = res2.data.data; | |
57 | + console.log("this.isAllowed", this.allowMultipleLogin); | |
58 | + } catch (err) { | |
59 | + alert('설정 정보를 불러오는 데 실패했습니다.'); | |
60 | + } | |
61 | + }, | |
62 | + async saveByLoginPolicy() { | |
63 | + try { | |
64 | + await saveByLoginPolicy(this.allowMultipleLogin); | |
65 | + alert('중복 로그인 설정이 저장되었습니다.'); | |
66 | + } catch (err) { | |
67 | + alert('중복 로그인 설정 저장 실패'); | |
68 | + } | |
69 | + }, | |
70 | + async saveByLoginMode() { | |
71 | + const confirmed = confirm( | |
72 | + '로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?' | |
73 | + ); | |
74 | + if (!confirmed) return; | |
75 | + | |
76 | + try { | |
77 | + console.log(this.loginMode); | |
78 | + await saveByLoginMode(this.loginMode); | |
79 | + alert('로그인 방식이 변경되었습니다.\n다시 로그인해주세요.'); | |
80 | + store.commit("setStoreReset"); | |
81 | + window.location = '/login.page'; | |
82 | + return Promise.reject(refreshError); | |
83 | + } catch (err) { | |
84 | + alert('로그인 방식 저장 실패'); | |
85 | + } | |
86 | + } | |
87 | + } | |
88 | + } | |
89 | + </script>(No newline at end of file) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?