Junobee25 / pre-order-service

소셜 미디어 플랫폼 API 개발 프로젝트
1 stars 0 forks source link

회원 가입/로그인 기능 개발하기 #8

Closed Junobee25 closed 8 months ago

Junobee25 commented 8 months ago
Junobee25 commented 8 months ago

회원가입 api가 호출되면 사용자 정보가 DB에 저장된다. 이후 이메일 인증 api를 호출하면 회원가입 시 매개변수로 전달한 email 파라미터를 가지고 인증이 이루어 져야하는데 email파라미터를 어떻게 가져와야하는지 고민중이다.

회원가입을 여러번 했을 때 DB에는 회원정보가 계속 저장되고 이메일 인증 api를 호출했을 때 본인의 이메일 파라미터 정보를 가져와야하는데 음..

Junobee25 commented 8 months ago

[인증 플로우] 회원가입 시 회원 정보를 DB에 추가한다. 이메일 인증에 email 파라미터를 주면 DB에서 해당 row를 찾아서 email_verified == False 이면 true 바꿔준다.

EmailAuth Entity(email, token, expired)를 추가하여 회원가입 시 토큰을 발행하여 해당 테이블에도 데이터를 저장한다. email정보로 인증 api를 호출했을 때 만료되지 않은 토큰의 데이터를 찾고 User Entity의 인증 정보를 true로 변경해준다. 만료된 토큰 데이터는 삭제한다.

[로그인] 로그인 하고자 하는 회원 데이터를 db에서 조회했을 때 email_verifeid == False이면 Fail을 응답 받고 eamil_verified == True 이면 Success를 응답 받는다.

https://gilssang97.tistory.com/60 참고

Junobee25 commented 8 months ago

google smtp 사용 설정 참고 https://kincoding.com/entry/Google-Gmail-SMTP-%EC%82%AC%EC%9A%A9%EC%9D%84-%EC%9C%84%ED%95%9C-%EC%84%B8%ED%8C%85

spring에 smtp 설정 까지 완료했고

UserEntity에 토큰 필드를 추가하고, 회원가입 시 EmailEntity에 저장될 인증 받는 서비스 로직을 UserAccoutService 에 작성하고 인증을 하는 로직 작성 후 controller 에 url을 매핑시켜준다.

그리고 postman으로 api 테스트를 진행한다.