Class AuthController

java.lang.Object
inha.git.auth.api.controller.AuthController

@RestController @RequestMapping("/api/v1/auth") public class AuthController extends Object
인증 관련 API를 처리하는 컨트롤러입니다. 로그인, 이메일 인증, 비밀번호 찾기 등 인증이 필요 없는 엔드포인트를 제공합니다.
  • Constructor Details

    • AuthController

      public AuthController()
  • Method Details

    • mailSend

      @PostMapping("/number") public BaseResponse<String> mailSend(@RequestBody @Valid @Valid EmailRequest emailRequest)
      회원가입 및 인증을 위한 이메일 인증번호를 발송합니다.
      Parameters:
      emailRequest - 이메일 주소와 인증 타입(회원가입/비밀번호 찾기 등)을 포함한 요청
      Returns:
      이메일 발송 결과 메시지
      Throws:
      BaseException - EMAIL_SEND_FAIL: 이메일 발송 실패 시
    • mailSendCheck

      @PostMapping("/number/check") public BaseResponse<Boolean> mailSendCheck(@RequestBody @Valid @Valid EmailCheckRequest emailCheckRequest)
      발송된 이메일 인증번호의 유효성을 검증합니다.
      Parameters:
      emailCheckRequest - 이메일 주소, 인증번호, 인증 타입을 포함한 요청
      Returns:
      인증 성공 여부 (true/false)
      Throws:
      BaseException - EMAIL_AUTH_EXPIRED: 인증 시간 만료, EMAIL_AUTH_NOT_MATCH: 인증번호 불일치
    • login

      @PostMapping("/login") public BaseResponse<LoginResponse> login(@RequestBody @Valid @Valid LoginRequest loginRequest)
      사용자 로그인을 처리합니다.
      Parameters:
      loginRequest - 이메일과 비밀번호를 포함한 로그인 요청
      Returns:
      JWT 토큰과 사용자 정보를 포함한 응답
      Throws:
      BaseException - ACCOUNT_LOCKED: 계정 잠김, EMAIL_NOT_FOUND: 존재하지 않는 이메일 BLOCKED_USER: 차단된 사용자 NOT_APPROVED_USER: 승인되지 않은 사용자
    • findEmail

      @PostMapping("/find/email") public BaseResponse<FindEmailResponse> findEmail(@RequestBody @Valid @Valid FindEmailRequest findEmailRequest)
      학번과 이름으로 사용자의 이메일(아이디)을 찾습니다.
      Parameters:
      findEmailRequest - 학번과 이름을 포함한 요청
      Returns:
      찾은 이메일 정보
      Throws:
      BaseException - USER_NOT_FOUND: 일치하는 사용자 정보가 없는 경우
    • findPasswordMailSend

      @PostMapping("/find/pw") public BaseResponse<String> findPasswordMailSend(@RequestBody @Valid @Valid FindPasswordRequest findPasswordRequest)
      비밀번호 찾기를 위한 이메일 인증번호를 발송합니다.
      Parameters:
      findPasswordRequest - 이메일 주소를 포함한 요청
      Returns:
      이메일 발송 결과 메시지
      Throws:
      BaseException - EMAIL_NOT_FOUND: 가입되지 않은 이메일인 경우, EMAIL_SEND_FAIL: 이메일 발송 실패
    • findPasswordMailSendCheck

      @PostMapping("/find/pw/check") public BaseResponse<Boolean> findPasswordMailSendCheck(@RequestBody @Valid @Valid FindPasswordCheckRequest fdindPasswordCheckRequest)
      비밀번호 찾기를 위해 발송된 인증번호를 검증합니다.
      Parameters:
      fdindPasswordCheckRequest - 이메일과 인증번호를 포함한 요청
      Returns:
      인증 성공 여부 (true/false)
      Throws:
      BaseException - EMAIL_AUTH_EXPIRED: 인증 시간 만료, EMAIL_AUTH_NOT_MATCH: 인증번호 불일치
    • findPassword

      @PostMapping("/find/pw/change") public BaseResponse<UserResponse> findPassword(@RequestBody @Valid @Valid ChangePasswordRequest changePasswordRequest)
      이메일 인증 후 새로운 비밀번호로 변경합니다.
      Parameters:
      changePasswordRequest - 이메일과 새로운 비밀번호를 포함한 요청
      Returns:
      비밀번호가 변경된 사용자 정보
      Throws:
      BaseException - EMAIL_AUTH_NOT_FOUND: 이메일 인증이 완료되지 않은 경우, EMAIL_NOT_FOUND: 존재하지 않는 이메일