개발자

플랫폼 별 (web, android, ios)별 Google Oauth 로그인 관리

2023년 07월 16일조회 328

안녕하세요. 현재 저는 nestjs를 사용하여 Google Oauth 로그인을 처리하고 있습니다. 로그인 로직 처리 도중, 궁금증이 하나 생겨 질문을 남깁니다. 현재 Google Oauth의 client ID 생성 방식은 web, android, ios 별로 다릅니다. (web은 redirect_url과 client secret도 있음) 저는 "각기 다른 플랫폼에서 Oauth 로그인 요청 시, 요청을 보낸 플랫폼에 맞게 client ID를 어떻게 설정하여 로그인 처리를 해야 하는가?" 라는 고민을 해결하고자 합니다 이에 대한 경험이나 해결방법이 있으시면 답변주시면 감사하겠습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

Google OAuth의 client ID는 각각의 플랫폼에서 요청을 구분하기 위해 사용됩니다. 이를 해결하기 위해서는 다음과 같은 방법을 고려할 수 있습니다. 1. 다중 클라이언트 ID 사용: 각 플랫폼별로 별도의 클라이언트 ID를 생성하고 관리합니다. 웹, Android, iOS 각각에 대해 해당 플랫폼의 클라이언트 ID를 사용하여 로그인 요청을 처리합니다. 이를 위해서는 NestJS에서 클라이언트 ID를 구분하여 사용하는 로직을 구현해야 합니다. 2. 통합 로그인 서비스: 플랫폼 간의 로그인 처리를 통합하는 서비스를 구축합니다. 예를 들어, 웹 애플리케이션에는 백엔드에서 Google OAuth를 처리하고, 모바일 앱에서는 서버를 통해 웹 애플리케이션의 로그인을 호출하는 방식입니다. 이를 통해 웹 애플리케이션의 클라이언트 ID만 사용하여 로그인을 처리할 수 있습니다. 3. 서버 측에서 요청 판별: 클라이언트에서 로그인 요청을 보낼 때 헤더 등에 플랫폼 정보를 식별할 수 있는 값을 함께 전송합니다. NestJS 서버에서는 이 값을 확인하여 해당 플랫폼에 맞는 클라이언트 ID를 사용하여 로그인 요청을 처리합니다. 이 방법은 클라이언트에서 추가적인 정보를 전송해야 하므로 구현에 주의가 필요합니다. 위의 방법 중에서 선택하실 수 있으며, 프로젝트의 특성과 요구사항에 따라 적합한 방법을 선택하시면 됩니다. 추가적으로 구현해야 할 로직이 있는 경우 NestJS의 Passport 라이브러리 등을 활용하여 효과적으로 구현할 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!