package com.zioinfo.cms.auth; import com.zioinfo.cms.auth.dto.AuthHelperResult; import com.zioinfo.cms.auth.dto.FindIdRequest; import com.zioinfo.cms.auth.dto.FindIdResponse; import com.zioinfo.cms.auth.dto.ResetPasswordRequest; import com.zioinfo.cms.auth.dto.SignupRequest; import com.zioinfo.cms.common.ApiResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 로그인 보조 기능 3종(UIWS auth 패턴 이식) — 회원가입 / 아이디찾기 / 비밀번호 초기화. * *

base path {@code /api/auth} (SecurityConfig permitAll — 로그인 전 무인증 접근). * 대상은 CMS 관리자/운영자 계정(cms_user) — UGC 고객회원(cms_member)과 구분된다. *

* 보안 불변규칙: 임시비번·자격증명·계정 존재여부를 응답/로그 메시지에 노출하지 않는다. */ @RestController @RequestMapping("/api/auth") @RequiredArgsConstructor public class AuthHelperController { private final AuthService authService; /** 운영자 회원가입(승인 대기 INSERT). */ @PostMapping("/signup") public ApiResponse signup(@RequestBody SignupRequest req) { return ApiResponse.ok(authService.signup(req)); } /** 아이디 찾기(이메일+이름 매칭, 마스킹 반환). */ @PostMapping("/find-id") public ApiResponse findId(@RequestBody FindIdRequest req) { return ApiResponse.ok(authService.findId(req)); } /** 비밀번호 초기화(검증 → 임시비번 BCrypt + 메일/로그). */ @PostMapping("/reset-password") public ApiResponse resetPassword(@RequestBody ResetPasswordRequest req) { return ApiResponse.ok(authService.resetPassword(req)); } }