어떤 과제를 해결하기 위해 의사 결정이 필요했나요?
-
해결 필요 과제
- 프론트엔드 로그인 구현을 위해 의사 결정 필요
-
주어진 상황
- 백엔드 쪽에서 소셜 로그인 부분이 완성되어 있었음
- 로그인 페이지로 연결하는 엔드포인트, OAuth 서버 인증 후 돌아오는 리다이렉트 엔드포인트가 모두 백엔드에 있는 상태
의사 결정 과정을 적어주세요.
최종 결정에 대한 근거를 적어주세요.
- 가능했던 해결책들
- (1) 소셜 인증 페이지 연결 로직 및 리다이렉트 URL을 프론트엔드 쪽으로 옮긴다
→ 프론트엔드, 백엔드 양쪽에서 수정해야할 코드가 많음
- (2) 리다이렉트 응답을 주면서 리다이렉트 URL의 쿼리 파라미터에 토큰을 담는다.
→ 백엔드 코드는 수정할 부분이 없으나, 프론트에서 리다이렉트 페이지를 새로 작성해야함 + 쿼리 파라미터에 토큰이 노출됨
- (3) 리다이렉트 응답을 주면서 Set-Cookie 헤더에 토큰을 담는다.
→ 백엔드 코드 토큰 검증 부분을 살짝 수정해야하지만 프론트에서 별도 리다이렉트 페이지를 작성할 필요가 없음
- 로컬 스토리지 등으로 저장하는 별도 로직 불필요
- 쿼리 파라미터로 토큰 노출되지 않음
- (3)을 선택한 이유
https://devtalk.kakao.com/t/redirect-uri/133854/5