Closed Junobee25 closed 10 months ago
회원가입 api가 호출되면 사용자 정보가 DB에 저장된다. 이후 이메일 인증 api를 호출하면 회원가입 시 매개변수로 전달한 email 파라미터를 가지고 인증이 이루어 져야하는데 email파라미터를 어떻게 가져와야하는지 고민중이다.
회원가입을 여러번 했을 때 DB에는 회원정보가 계속 저장되고 이메일 인증 api를 호출했을 때 본인의 이메일 파라미터 정보를 가져와야하는데 음..
[인증 플로우]
회원가입 시 회원 정보를 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를 응답 받는다.
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 테스트를 진행한다.