
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<template>
<div class="content-zone">
<div class="content">
<div class="scroll">
<div open class="form-box">
<div class="form-box-title">
<p class="summary-style pl10">기본 정보</p>
<span style="color: red;"> ※ 로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</span>
</div>
<div class="form-content">
<div class="gd-12 pl0">
<label class="form-title">중복로그인 설정</label>
<div class="form-group">
<div class="check-area">
<div class="form-check">
<input type="radio" id="allowMultipleLoginY" class="mr5" value="Y" v-model="allowMultipleLogin" @change="saveByLoginPolicy" />
<label for="allowMultipleLoginY">허용</label>
</div>
<div class="form-check">
<input type="radio" id= "allowMultipleLoginN" class="mr5" value="N" v-model="allowMultipleLogin" @change="saveByLoginPolicy" />
<label for="allowMultipleLoginN">비허용</label>
</div>
</div>
<!-- <p>{{ allowMultipleLogin ? '중복 로그인을 허용하고 있습니다.' : '중복 로그인을 허용하지 않습니다.' }}</p>-->
</div>
</div>
<div>
<label class="form-title">로그인 방식 설정</label>
<div class="form-group">
<div class="check-area">
<div class="form-check">
<input type="radio" id= "loginModeJ" class="mr5" value="J" v-model="lgnMode" @change="saveByLoginMode" />
<label for="loginModeJ">JWT 방식</label>
</div>
<div class="form-check">
<input type="radio" id= "loginModeS" class="mr5" value="S" v-model="lgnMode" @change="saveByLoginMode" />
<label for="loginModeS">SESSION 방식</label>
</div>
</div>
<span class="ml10 gray">
현재 로그인 방식은 <strong>{{ loginModeLabel }}</strong> 입니다.
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { findAllByLoginPolicy, saveByLoginPolicy, findAllByLoginMode, saveByLoginMode } from '../../../../../resources/api/loginPolicy'
import store from "../../../../../views/pages/AppStore";
export default {
data() {
return {
allowMultipleLogin: null,
lgnMode : null,
previousLgnMode: null, // 이전 로그인 모드 저장
previousAllowMultipleLogin: null
}
},
created() {
this.findAll();
},
mounted() {
},
computed: {
loginModeLabel() {
return this.lgnMode === 'J' ? 'JWT' : 'SESSION';
}
},
methods: {
async findAll() {
try {
const res1 = await findAllByLoginPolicy();
this.allowMultipleLogin = res1.data.data === true ? 'Y' : 'N';
this.previousAllowMultipleLogin = this.allowMultipleLogin;
const res2 = await findAllByLoginMode();
this.lgnMode = res2.data.data;
this.previousLgnMode = this.lgnMode; // 초기 상태를 저장
} catch (err) {
alert('설정 정보를 불러오는 데 실패했습니다.');
}
},
async saveByLoginPolicy() {
const confirmed = confirm(
'로그인 설정을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?'
);
if (!confirmed) {
this.allowMultipleLogin = this.previousAllowMultipleLogin;
return;
}
try {
const loginPolicy = {};
loginPolicy.allowMultipleLogin = this.allowMultipleLogin;
await saveByLoginPolicy(loginPolicy);
alert('중복 로그인 설정이 저장되었습니다.');
} catch (err) {
alert('중복 로그인 설정 저장 실패');
this.allowMultipleLogin = this.previousAllowMultipleLogin;
}
},
async saveByLoginMode() {
const confirmed = confirm(
'로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?'
);
if (!confirmed) {
this.lgnMode = this.previousLgnMode;
return;
}
try {
const loginMode = {};
loginMode.lgnMode = this.lgnMode;
// await saveByLoginMode(loginMode);
alert('로그인 방식이 변경되었습니다.\n다시 로그인해주세요.');
store.commit("setStoreReset");
window.location = '/login.page';
} catch (err) {
alert('로그인 방식 저장 실패: ' + (err.response?.data?.message || err.message));
this.lgnMode = this.previousLgnMode;
}
}
}
}
</script>