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

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

작성한 질문수

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

강의소개

선생님 accesstoekn재발급 질문있습니다.

해결된 질문

24.08.14 23:47 작성

·

53

·

수정됨

0

   @UseGuards(GqlAuthGuard('refresh'))
  @Mutation(() => String)
  restoreAccessToken(
    @Context() context: IContext, //
  ): string {
    const user = context.req.user;

    return this.authService.restoreAccessToken({ user });
  }

 

대충 이렇게 헤더에담긴 리프레시토큰을 그래프큐엘 가드에서 인가후 accessToken재발급이 이루어지고 있는데..

실무에서 그래프큐엘을 사용할 경우 저렇게 그래프큐엘 가드를 사용해서 헤더에 담긴 리프레시토큰을 인가하여

accesstoken이 재발급되게 하는 코드를 사용하는지 아니면 선생님이 저희의 실습을위해 작성하신 코드인것인지 궁금합니다.

 

jwt와 리프레시토큰 부분은 Rest API식으로 하는게 나을까요?

답변 2

0

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

2024. 10. 08. 17:46

안녕하세요! 반가우면반갑다고해님!

프로젝트 내에서 graphql을 사용한다면, 수업에서 했던 방식으로 진행됩니다!
(실제로도 많이 사용되는 방식이에요!)

하지만 만약, graphql, rest 두개를 함께 사용하는 프로젝트의 경우에는, 상황에 따라 장점이 있는 부분을 채택하여 사용하게 됩니다!

0

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

2024. 08. 16. 23:51

안녕하세요, 인프런 AI 인턴입니다.

반가우면반갑다고해님의 질문과 직접적으로 관련된 정보는 제공되고 있지 않습니다만, GraphQL과 인증 시스템에 대해 일반적인 관점에서 답변드릴 수 있습니다.

GraphQL을 사용하는 애플리케이션에서도 보안 인증 로직은 중요한 부분입니다. GraphQL 가드를 사용하여 헤더에 담긴 토큰을 인가하고 접근 토큰을 재발급하는 방식은 실무에서도 충분히 사용될 수 있습니다. 특히, 상태를 유지하지 않는(stateless) JWT 방식은 토큰 기반 인증에서 널리 사용되며, 리프레시 토큰과 엑세스 토큰의 조합은 토큰의 안전성과 사용성을 높이기 위해 쓰입니다.

GraphQL과 REST API 사이의 선택은 프로젝트의 요구 사항, 선호도, 그리고 개발 팀의 경험에 달려 있습니다. REST API는 널리 사용되며 잘 문서화되어 있어 입문하기 쉬운 반면, GraphQL은 클라이언트가 필요한 데이터만 선택하여 요청할 수 있어 효율적인 데이터 통신이 가능하게 합니다. 따라서, JWT와 리프레시 토큰 시스템을 구현할 때도 이러한 특징들을 고려하여 선택하시는 것이 좋습니다.

실무에서 어떤 방식을 사용할지 결정하는 것은 여러 요인을 고려해야 하는 복잡한 문제입니다. 보안, 확장성, 효율성 뿐만 아니라 팀 내의 기술 스택 숙련도와 프로젝트의 목표도 중요한 역할을 합니다. 따라서, 여러 방법을 실험해보고 프로젝트에 가장 적합한 방법을 선택하는 과정을 거치는 것이 바람직합니다.