전체 글43 zzz 7. 예외 처리(선택)GlobalExceptionHandler.javapackage com.example.jwt.common;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.MethodArgumentNotValidException;import org.springframework.web.bind.annotation.*;import java.util.Map;@RestControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity handle.. 2025. 8. 18. 쿼리 1. 기존 Users 테이블 수정-- 기존 users 테이블 수정 (기본 인증 정보만 유지)ALTER TABLE users ADD COLUMN phone VARCHAR(20) NULL,ADD COLUMN email_verified BOOLEAN DEFAULT FALSE,ADD COLUMN phone_verified BOOLEAN DEFAULT FALSE,ADD COLUMN status ENUM('ACTIVE', 'INACTIVE', 'SUSPENDED', 'PENDING') DEFAULT 'PENDING',ADD COLUMN last_password_change TIMESTAMP NULL,ADD COLUMN failed_login_attempts INT DEFAULT 0,ADD COLUMN locked_.. 2025. 8. 18. vue 대쉬보드에서 로그아웃하는 기능... 사용자 아이콘 누르고 Sign Out 누르기.. 대시보드 {{ loggingOut ? '로그아웃 중...' : '로그아웃' }} 환영합니다! {{ userInfo }}님이 로그인했습니다. {{ loading ? '로딩 중...' : '사용자 정보 가져오기' }} 사용자 데이터: {{ userData }} {{ logoutMessage }} 2025. 8. 14. logout import { ref, computed } from 'vue'import { useRouter } from 'vue-router'import axios from 'axios'// 전역 상태const user = ref(null)const token = ref(localStorage.getItem('jwt-token'))export function useAuth() { const router = useRouter() // 계산된 속성 const isAuthenticated = computed(() => !!token.value) // 로그인 함수 const login = async (credentials) => { try { const response = await axios.po.. 2025. 8. 14. VUE 초과근무 시간 관리 Overtime.vue 초과근무 현황 {{authStore.userName || authStore.mail}} 부장 이반 달 초과근무 시간: .. 2025. 8. 9. stores/auth.js (초기화 상태 추가) import { defineStore } from 'pinia'import { ref, computed } from 'vue'import axios from 'axios'export const useAuthStore = defineStore('auth', () => { // 상태 const user = ref(null) const token = ref(localStorage.getItem('jwt-token')) const loading = ref(false) const error = ref('') const initialized = ref(false) // 초기화 상태 추가 // 계산된 속성 const isAuthenticated = computed(() => !!token.value &.. 2025. 8. 6. 이전 1 2 3 4 5 6 ··· 8 다음