전체 글43 사용자 생성 기능 코드도 만들어줘 springboot 3 코드만 있으면 될 것 같아 알겠습니다. 앞서 제공했던 구조(스프링 부트 3 + 스프링 시큐리티 6 + JWT, 기존 User/Authority 엔티티, H2 또는 MariaDB 사용, PasswordEncoder, Security 설정, 컨트롤러/서비스/리포지토리 분리)를 그대로 준수하면서 “회원가입(사용자 생성)” 코드를 깨끗하게 다시 정리해 드립니다.아래 코드는 다음을 충족합니다:Spring Boot 3, Security 6 방식(Lambda DSL, jakarta.*)PasswordEncoder(BCrypt)로 비밀번호 암호화이메일 중복 검사기본 권한 ROLE_USER 자동 부여DTO 검증(@Valid)서비스 계층 트랜잭션Security에서 회원가입 엔드포인트 permitAll앞서 답변해 드린 User/Authority 구조.. 2025. 8. 20. 로그인 성공시 사용자 정보도 받는다 아래는 “로그인 시 JWT 발급과 함께 로그인한 사용자의 이름(name)과 전화번호(phone)도 프론트로 내려받는” 방법을 Spring Boot 3 + Spring Security 6 + JWT 기준으로 단계별 정리한 것입니다. 핵심은 로그인 성공 시 응답 DTO에 사용자 프로필 필드를 포함해 반환하는 것입니다.구현 목표- POST /api/authenticate 요청 시 - JWT 토큰 - email(아이디), name(이름), phone(전화번호), roles 등 사용자 정보 함께 반환- Vue 3에서는 로그인 응답으로 받은 name/phone을 상태에 저장해서 화면에서 바로 사용1) 로그인 응답 DTO 확장토큰만 내려주던 DTO를 확장해 사용자 정보도 포함합니다.TokenResponse.jav.. 2025. 8. 19. 정규식 // composables/useEmailCheck.jsimport { ref, computed, watch } from 'vue';import { checkEmailExists } from '@/api/auth';// 간단한 이메일 정규식 예시 (필요시 강화 가능)const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;export function useEmailCheck() { const email = ref(''); const isFormatValid = ref(null); // true | false | null const isChecking = ref(false); const isDuplicate = ref(null); // true | false | .. 2025. 8. 19. 중복확인 버튼없이 패스워드 입력으로 넘어가면 중복여부를 확인하도록 수정해줘 # 입력 이동 시 자동 중복 검사로 수정하기 (버튼 없이)아래 코드는 “중복 확인” 버튼 없이, 아이디 입력 후 포커스가 비밀번호 입력으로 이동하는 순간(blur 또는 Enter로 다음 필드 포커스) 자동으로 중복 여부를 검사하도록 변경한 예시입니다. 기존 JS 버전(Composition API)을 기준으로 수정했습니다.핵심 변경 사항- 디바운스 실시간 검사 대신, 아이디 인풋에서 포커스가 빠질 때(blur) 또는 Enter로 다음 필드로 이동할 때 중복 검사 실행.- 별도의 “중복 확인” 버튼 제거.- 회원가입 버튼 활성화 조건은 동일하게 유지: 형식 OK && 중복 아님 && 에러 없음.## 1) 컴포저블 업데이트 (composables/useUsernameCheck.js)- watch에 의한 자동 .. 2025. 8. 19. vue3 에서 회원가입 기능을 만들건데 입력한 아이디 정보가 이미 등록된 아이디인지 체크하는 기능을 구현해줘 아래는 앞서 제공한 TypeScript 예제를 모두 순수 JavaScript로 변환한 코드입니다. 타입 주석, 제네릭, zod 스키마 등 TS 전용 요소를 제거하고, JS 환경에서 그대로 동작하도록 다듬었습니다.# 1) 디바운스 유틸 (utils/debounce.js)```js// utils/debounce.jsexport function debounce(fn, delay = 300) { let timer; return (...args) => { if (timer) clearTimeout(timer); timer = setTimeout(() => fn(...args), delay); };}```# 2) 중복 검사 API 호출 (api/auth.js)```js// api/auth.jsexp.. 2025. 8. 19. ㅋ 3) 컴포저블: 아이디 중복 검사 로직 (composables/useUsernameCheck.js)// composables/useUsernameCheck.jsimport { ref, watch, computed } from 'vue';import { debounce } from '@/utils/debounce';import { checkUsernameExists } from '@/api/auth';const USERNAME_REGEX = /^[a-z0-9_]{4,16}$/;export function useUsernameCheck() { const username = ref(''); const isFormatValid = ref(null); // true | false | null const .. 2025. 8. 19. 이전 1 2 3 4 5 ··· 8 다음