🔙뒤로가기

인증 (Authentication)

GraphQL은 인증 방식에 대해 특별히 명시하지 않는다. 따라서 기존의 HTTP 인증 방식을 그대로 사용할 수 있다. 주로 사용되는 방식은 다음과 같다.

인증이 성공하면, 서버는 인증 토큰을 클라이언트에게 전달합니다. 클라이언트는 이 토큰을 사용하여 이후의 요청에서 자신을 식별한다. 일반적으로 이 토큰은 HTTP 헤더에 포함시켜 요청한다.

권한 관리 (Authorization)

인증 성공 후, 사용자가 어떤 데이터에 접근할 수 있는지 결정하는 것을 권한 관리 또는 접근 제어라고 한다.

GraphQL에서는 각 요청을 처리하는 리졸버에서 권한을 검사할 수 있다. 예를 들어, 특정 사용자의 개인 정보를 요청하는 쿼리가 있다면, 이 쿼리를 처리하는 리졸버에서는 요청한 사용자가 그 정보에 접근할 권한이 있는지 검사해야 한다.

이러한 권한 검사는 종종 "미들웨어" 또는 "디렉티브"라는 기능을 사용하여 구현한다. 미들웨어는 리졸버가 요청을 처리하기 전후에 실행되는 코드이며, 디렉티브는 스키마 정의에 추가하여 특정 필드에 권한 검사 로직을 적용하는 방식이다.