개요
graphql 보안 강화 (Schema Dumping 방지) 공유자료에 의해, 보안강화 목적으로 인트로스펙션이 막혔다.
따라서 현재 상황은 다음과 같다.
- 인트로스펙션이 가능한 계정이 별도로 있어서, 인증 후에 인트로스펙션이 가능하다.
- 하지만 현재
graphiQL
사이트에 토큰정보를 기입해도 스키마 도큐먼트를 볼 수 없다.
인트로스펙션용 계정을 통해 요청을 해야만 인트로스펙션이 가능하도록 되어있는 상태다.
따라서 스키마 문서를 보기 위한 방법을 정리하고자 한다.
Insomnia로 스키마 문서 참조
Insomnia 초기 세팅


새로운 컬렉션을 추가한다.

이제 새로운 Request 문을 작성할 수 있는 상태가 되었다.
요청문 작성

새로운 요청문 추가한다.

graphql 쿼리할 서버 주소를 기입한다.
- 참조
특정 계정으로만 인트로스펙션을 할 수 있는데, 현재 유효하지 않은 상태이므로
Query Depth Error!!!
에러가 뜨는 상태다.인트로스펙션 계정 로그인
계정 정보는 다음 문서를 참조한다.
mutation { login( email: "id" password: "pw" ) { token success } }

Operations 란에 로그인 뮤테이션을 작성하고, 계정 정보를 참조하여 jwt 토큰을 발급받는다.

Headers
란에 Authorization
필드를 추가하여 "JWT 토큰정보"
형식으로 기입한다.스키마 도큐먼트 확인

jwt 토큰이 유효한 상태라면 이제 인트로스펙션이 가능하다.
Graphql
란에 schema
→ Show Documentation
을 눌러주면 graphiQL 에서 보던 도큐먼트와 동일한 문서를 볼 수 있다.jwt 토큰 인증 만료 시 재발급 방법

스키마 도큐먼트를 이미 띄워둔 상태라면 토큰 정보가 만료됐더라도 상관없다.
하지만 도큐먼트를 닫은 상태에서 토큰정보가 만료된 경우 토큰을 새로 받아서 다시 스키마 정보를 불러와야 한다.

다시 로그인 뮤테이션을 쏴서 JWT 토큰정보를 업데이트 시켜주면 되는데,
Headers에 있는 토큰정보는 이미 만료되었으므로 체크 해제 후 요청해야 정상 요청된다.

새로 발급받은 유효한 jwt 토큰으로 업데이트 시켜주고, 다시 체크를 활성화 시킨다.

유효한 토큰정보이므로 스키마 도큐먼트를 다시 받아올 수 있다.
최종 구성

폴더를 만든 후 서버 계 별로 정리해두면 편하다.