인프런 커뮤니티 질문&답변

반가우면반갑다고해님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

11-05 토큰 재발급 API

nestjs+graphql에서 부분적으로 restapi를 사용해도되나요?

해결된 질문

24.07.18 21:17 작성

·

121

0

소셜로그인 부분을 그래프큐엘 가드를 사용해서 적용하면 원인을 도저히 모르겠는 , res.setHeader function이 없다는 에러가 계속 발생하는데요..

챗지피티 무료버전에 물어보니

소셜로그인 부분은 restapi로 구현한다고하는데..

챗지피티를 믿을수가없어서요..

  1. 소셜로그인 부분은 restapi로 해야된다.

  2. 그래프큐엘로 바꿀수있는데 너가 코드를 잘 못친듯?



    1번과 2번중에 어떤건가요?

답변 2

0

노원두님의 프로필 이미지
노원두
지식공유자

2024. 07. 25. 17:07

안녕하세요! 반가우면반갑다고해님!
수업에서 나오는 내용에 추가로 더 고도화된 다양한 시도를 하시는 모습을 보니 빠른 성장이 기대됩니다!^^위 질문 "graphql로 소셜로그인을 변경한다" 를 조금 더 세부적으로 나눌 필요가 있어요!

먼저, 최종적으로 구글에서 토큰을 받아오기 위한 과정은 구글에서 graphql을 제공하지 않는 이상 어려움이 있으므로 이 과정은 잠깐 패스할게요!

그렇다면, 우리가 집중해야 하는 부분은, 껍데기만 graphql로 만들고 이 내부에서는 rest-api로 구글에서 토큰을 받아오는 방법이 되겠어요!
기존에 이 역할을 대신 해주었던 라이브러리가 무엇이었을까요?!
바로 passport 였었죠!

따라서, 1. passport를 graphql로 제공해주는 라이브러리가 있다면, 해당 라이브러리를 사용하거나, 그렇지 않으면 2. 라이브러리를 직접 만드는 방법 정도로 간추려 볼 수 있을 것 같네요!^^

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 20. 21:21

안녕하세요, 인프런 AI 인턴입니다.
네스트(NestJS)와 GraphQL을 사용하는 환경에서 특정 기능(예를 들어 소셜 로그인)만 REST API로 구현하는 것에 대한 질문이시군요. 저희가 제공한 자료에는 이와 직접적으로 관련된 내용이 없어, 정확한 답변을 드리기 어렵습니다. 하지만, 일반적으로 한 애플리케이션 내에서 GraphQL과 REST API를 혼합하여 사용하는 것은 가능합니다.

소셜 로그인 부분에서 res.setHeader 함수가 없다는 에러가 발생한다면, 아마도 GraphQL 환경에서 HTTP 응답 객체에 직접 접근하려 하면서 발생하는 문제일 수 있습니다. NestJS와 GraphQL을 사용할 때, HTTP 특정 로직(예: 쿠키 설정, 헤더 설정)을 처리해야 하는 경우, 해당 기능을 구현하는 방식에 따라 문제가 발생할 수 있습니다.

  1. 소셜로그인 부분은 REST API로 구현해야 한다: 소셜로그인의 경우 HTTP 요청과 응답을 세밀하게 제어해야 할 필요가 있을 수 있으므로, REST API를 사용하는 것이 더 효과적일 수 있습니다.
  2. GraphQL로 바꿀 수 있는데 코드를 잘 못 짰을 수 있음: GraphQL 환경에서도 소셜 로그인을 구현할 수 있습니다. 하지만 구현 방식이 REST API에 비해 복잡해질 수 있으며, 적절한 GraphQL 라이브러리나 도구를 사용해야 합니다.

최종적으로, 어떤 방식을 선택할지는 프로젝트의 요구사항과 구현의 복잡성, 개발 팀의 기술 스택과 경험에 따라 결정되어야 할 것입니다. 문제의 에러에 대해 더 구체적인 해결책을 찾고자 한다면, 특정 기능 구현 방식에 대한 검증이 가능한 공식 문서나 해당 기술 스택의 커뮤니티에 구체적인 코드와 함께 질문을 올려 보시는 것이 좋을 것 같습니다.