white-sand-beach / gaeun

0 stars 6 forks source link

[BE][Feat] 판매자 auth 구현 - [merged] #32

Closed limsubinn closed 5 months ago

limsubinn commented 6 months ago

In GitLab by @tddudwns1 on Apr 27, 2024, 18:52

Merges be-feature-seller -> be

🔎 작업 내용

판매자 회원가입 및 security 구현

  1. 의존성 추가
  2. HTTP 프로토콜 설정 Clickjacking 방지 CSRF(Cross-Site Request Forgery) 설정 비활성화 (JWT 방식 사용) CORS(Cross-Origin Resource Sharing) 설정 Form 로그인 방식 비활성화 HTTP Basic 인증 방식 비활성화
  3. CORS 설정 : 판매자 서비스에서 특정 도메인으로부터의 모든 REST 메서드 요청을 허용하고, 헤더와 credential 값을 허용
  4. 요청 권한 설정 whiteList에 있는 요청은 모두 허용 (permitAll()) sellerList에 있는 요청은 "SELLER" 역할을 가진 사용자만 접근 가능 그 외의 요청은 인증된 사용자만 접근 가능 (authenticated())
  5. BCryptPasswordEncoder 빈 등록
  1. docs interface 구현 : swagger 및 url 확인 및 정리용
  2. repository 구현 mapstruct를 위해 entity에 @Builder 적용 dto to entity mapstruct 구현 : SELLER 권한 부여, passwordEncoding 적용 JpaRepository 적용 및 existsByEmail을 통한 중복 확인
  1. 회원가입 성공
  2. 이메일 중복
  1. db 방언 설정
  2. test file의 @SpringBootTest 제거

판매자 로그인 구현

  1. URL 통일감 있게 /api/auth/login 수정
  2. 스프링 시큐리티에서 username과 password를 검증하기 위해 token 생성 : name 대신 email로 검증
  3. token에 담은 검증을 위한 AuthenticationManager로 전달
  4. 각 상황별 에러 응답 작성
  1. SELLER 역할 고정 부여

판매자 아이디(이메일) 사용 가능 여부 확인 기능 구현

전화번호로 아이디(이메일) 확인 기능 구현

기타 구현사항

판매자 임시 비밀번호 생성 및 인증 구현

  1. Google SMTP 서버 이용해서 이메일 인증 진행
  2. 관련 설정 파일 추가
  3. html 형식으로 전송
  1. 비밀번호를 유실한 판매자는 인증받은 phoneNumber와, email을 함께 제출해야올바른 email인지 확인 됨
  2. 임시 비밀번호가 인증되지 않았을 때 비밀번호를 업데이트 하면 다른 사용자가 요청한 경우에 비밀번호가 초기화 되므로 인증 전 비밀번호 업데이트 안 함
  1. seller 누락 naming 추가
  2. schema 요청 추가
  3. 누락 url 추가

🚩 참고 사항


✈️ MR 타입


🔗 지라 링크


limsubinn commented 6 months ago

In GitLab by @tddudwns1 on Apr 27, 2024, 21:58

added 29 commits

Compare with previous version

limsubinn commented 6 months ago

In GitLab by @tddudwns1 on Apr 27, 2024, 21:59

approved this merge request

limsubinn commented 6 months ago

In GitLab by @tddudwns1 on Apr 27, 2024, 21:59

정말 잘하시네요^^

limsubinn commented 6 months ago

In GitLab by @tddudwns1 on Apr 27, 2024, 22:00

감3다!!

limsubinn commented 6 months ago

In GitLab by @tddudwns1 on Apr 27, 2024, 22:00

mentioned in commit b8bf261e7ad5496f63f6ee5bea318f1ccd5fa615