- 설명: 일반 사용자가 회원가입을 요청할 수 있다.
- 요청 데이터:
- 이메일, 비밀번호, 닉네임, 전화번호
- 처리 로직:
- 이메일, 비밀번호, 닉네임, 전화번호 유효성 검증
- 중복 이메일/전화번호 존재 시 가입 거부
- 비밀번호 암호화 저장
- 기본 권한
USER로 저장 - 회원가입 완료 시 사용자 정보를 응답
- 예외 처리:
- 유효하지 않은 입력값:
MethodArgumentNotValidException - 이메일/전화번호 중복:
BaseException발생
- 유효하지 않은 입력값:
- 설명: 사업자(사장) 사용자가 회원가입을 요청할 수 있다.
- 요청 데이터:
- 이메일, 비밀번호, 닉네임, 전화번호
- 처리 로직:
- 일반 유저와 동일하게 유효성 검증 및 중복 체크
- 기본 권한을
OWNER로 저장 - 회원가입 완료 시 사용자 정보를 응답
- 예외 처리:
- 유효하지 않은 입력값
- 이메일/전화번호 중복
- 설명: 관리자가 별도로 회원가입할 수 있다.
- 요청 데이터:
- 이메일, 비밀번호, 닉네임, 전화번호
- 처리 로직:
- 일반 유저와 동일한 방식으로 검증 및 저장
- 기본 권한을
ADMIN으로 저장 - 회원가입 완료 시 사용자 정보를 응답
- 예외 처리:
- 유효하지 않은 입력값
- 이메일/전화번호 중복
- 설명: 이메일/비밀번호를 사용해 로그인할 수 있다.
- 요청 데이터:
- 이메일, 비밀번호
- 처리 로직:
- 이메일로 사용자 조회
- 비밀번호 일치 여부 검증
- 성공 시 JWT 토큰 발급
- 사용자 정보 + 토큰 응답
- 예외 처리:
- 존재하지 않는 이메일
- 비밀번호 불일치
- 로그인 실패 시
BaseException(AuthError.INVALID_LOGIN)
- 설명: 로그인한 사용자가 자신의 정보를 조회할 수 있다.
- 요청 데이터:
- 로그인한 사용자의 토큰 (AuthenticationPrincipal로 처리)
- 처리 로직:
- 토큰에서 사용자 ID 추출
- 사용자 ID로 DB에서 유저 정보 조회
- 조회된 유저 정보를 응답
- 예외 처리:
- 유저를 찾을 수 없는 경우:
BaseException(USER_NOT_FOUND)
- 유저를 찾을 수 없는 경우:
- 설명: 로그인한 사용자가 닉네임 또는 전화번호를 수정할 수 있다.
- 요청 데이터:
- 닉네임(선택)
- 전화번호(선택, 형식 검증)
- 처리 로직:
- 요청받은 전화번호가 기존 사용자들의 전화번호와 중복되지 않는지 확인
- 중복일 경우 수정 거부
- 유저 엔티티의 닉네임/전화번호를 업데이트
- 수정된 유저 정보를 응답
- 예외 처리:
- 전화번호 중복:
BaseException(DUPLICATE_PHONE_NUMBER) - 유저를 찾을 수 없는 경우:
BaseException(USER_NOT_FOUND)
- 전화번호 중복:
- 설명: 민감한 작업(회원 탈퇴 등)을 위해 사용자의 비밀번호를 재확인한다.
- 요청 데이터:
- 비밀번호
- 처리 로직:
- 요청받은 비밀번호를 DB의 해시된 비밀번호와 비교
- 일치할 경우 5분짜리
pwdConfirm=true쿠키를 발급 - 비밀번호가 일치하면 성공 메시지를 반환
- 예외 처리:
- 비밀번호가 일치하지 않는 경우:
BaseException(INVALID_PASSWORD)
- 비밀번호가 일치하지 않는 경우:
- 설명: 로그인한 사용자가 본인 계정을 탈퇴할 수 있다.
- 요청 데이터:
- 로그인한 사용자의 토큰
pwdConfirm쿠키 (true값) 필요
- 처리 로직:
- 쿠키값 검증 (
pwdConfirm == true확인) - 유저 엔티티의
isDeleted필드를true로 변경 - 탈퇴 완료 메시지를 반환
- 쿠키값 검증 (
- 예외 처리:
- 쿠키가 없거나 값이
true가 아닌 경우:BaseException(AuthError.AUTH_PWD_CONFIRM_REQUIRED) - 유저를 찾을 수 없는 경우:
BaseException(USER_NOT_FOUND)
- 쿠키가 없거나 값이
- 설명: 이메일, 전화번호를 기반으로 사용자가 임시 비밀번호를 발급받을 수 있다.
- 요청 데이터:
- 이메일
- 전화번호
- 처리 로직:
- 전화번호로 사용자 조회
- 조회된 사용자와 요청한 이메일이 일치하는지 검증
- 임시 비밀번호를 생성하여 암호화
- DB에 새로운 비밀번호 저장
- 발급된 임시 비밀번호(plain text)를 응답
- 예외 처리:
- 전화번호로 사용자를 찾을 수 없는 경우:
BaseException(USER_NOT_FOUND) - 이메일이 일치하지 않는 경우:
BaseException(LOGIN_FAILED)
- 전화번호로 사용자를 찾을 수 없는 경우: