[TIL][codecamp] 팀 프로젝트 14일차 회고

조혜인·2022년 9월 21일
0

팀 프로젝트

목록 보기
14/15

🫠 오늘의 내 상태

  • 큰 이슈는 없기에 기분은 좋은데 아래의 현명하게 소셜로그인 문제를 해결하고 싶어서 고민중

📚 오늘 한 일

소셜로그인시 중복 이메일 처리하기

  • 기존에 소셜로그인을 테스트할 때 네이버와 카카오에서 동일한 이메일로 로그인을 시도할 경우 예외처리를 해주지 않으면 기존에 다른 플랫폼을 이용하여 등록된 계정으로 연동되는 문제점을 확인하였었다. 그 때 당시에 어떻게 하면 구분할 수 있을까 고민한 결과, 추후 프로젝트 때에는 어떤 플랫폼을 이용하여 소셜로그인을 하였는지를 DB에 저장해주기로 생각했어서 DB에 플랫폼 이름을 저장해놓은 상태였다.

    나의 계획은 이렇다. 이미 구분되어서 DB에 저장이 되고 있으니, 소셜로그인을 시도할 시 기존에 있는 이메일이라면 DB에 저장된 소셜로그인 타입을 확인하여 동일한 플랫폼인지를 확인한 후 다른 플랫폼이라면 에러를 반환해주는 것이다!!! 라고 하였으나,, 아직 redirection을 타지 않아서 우리의 페이지로 들어온 것이 아니기에 에러처리가 나타나지 않았다.🤔 Unhandled Promise Error만 나올 뿐..

    그러다가 생각난 것은! 기존에 어떤 페이지에서 소셜로그인을 시도하였는데 만약 다른 소셜로그인으로 로그인된 계정이라면 나를 다시 로그인 페이지로 데려다주면서 alert창을 본 기억이 났다. 그렇다면 우리도 동일하게 소셜로그인 페이지로 다시 데려다주고 alert창을 통해 이미 등록된 플랫폼으로 로그인을 시도해달라고 하면 되지 않을까?

    redirection이후에 throw new Exception을 해주면 우리의 페이지에서 먹을까? 라는 생각을 했지만 이것 또한 Unhandled Promise Error가 뜬다. 흠.. 그래서 찾아본 것이 내가 다시 리다이렉션을 찍어줄 때 주소 뒤에 ?를 사용하여 프론트에 'Please Login with {플랫폼 이름}'라는 데이터를 붙여서 보내주는 방법이었다. 일단 이런 식으로 구현해주면 프론트에는 주소 뒤에 내가 써준 문구가 잘 들어가는 것을 확인할 수 있었는데 이렇게 넘겨주고 싶지는 않은데..

    백엔드 API들은 이제 대부분이 안정을 찾아 큰 이슈사항이 없으므로 이 부분에 대해서 조금 더 찾아봐야겠다. 어떻게하면 좋은 방법으로 사용자를 다른 플랫폼으로 소셜로그인할 수 있도록 데려다 줄 수 있을까? to be continue...

profile
코딩은 역시 재밌군

0개의 댓글