graphql-server-express
을 사용하여 REST API를 사용하는 GraphQL 서버를 작성합니다.리졸버가 오류를 throw 할 때 GraphQL 리디렉션
사용자가 리소스에 액세스하도록 인증되지 않은 경우 REST 호출이 301 또는 401 상태 코드를 반환 할 수있는 상황에 처해 있습니다. 클라이언트에 설정되어 있고 GraphQL 쿼리를 해결하는 동안 REST API로 전달 된 쿠키를 사용하고 있습니다.
오류가 발생했을 때 GraphQL 끝점에 대한 호출에 대한 응답으로 클라이언트에 301 리디렉션을 보낼 수 있습니까?
나는 res.sendStatus(301) …
같은 것을 시도했다. formatError
에 넣었다. 그러나 이것 이후에 graphql-server-express
이 헤더를 설정하려고 시도 할 때 이것은 잘 작동하지 않는다. 이 같은 뭔가 단락에 graphqlExpress
미들웨어 시도에
나는 또한 시도했다 :이 경우 TypeError: Cannot read property 'formatError' of undefined
에
export default graphqlExpress((req, res) => {
res.sendStatus(301);
return;
});
클라이언트가 올바른 결과를 수신하는 동안, 서버는 여전히 (오류를 인쇄 - 대부분의 아마도 미들웨어가 빈 옵션을 받기 때문에).
이 방법을 사용하는 좋은 방법이 있습니까? 감사!
어디로 리디렉션하나요? GraphQL에서 Redirect는 실제로 이해가되지 않습니다. 클라이언트가 두 개의 루트 노드가있는 쿼리를 보내면 성공하고 (로그인 할 필요가 없음) 하나는 실패하고 300이나 200은 무엇입니까? –
하나 이상의 필드가 실패하면 내 경우에는 리디렉션을 보내야합니다. – amann
하지만 graphql 쿼리는 브라우저가 아닌 JS 코드로 직접 실행됩니다. 리다이렉트를 전송한다고해서 브라우저가 로그인 페이지를로드하지는 않습니다. 귀하의 graphql 클라이언트는이 응답 코드를 감지하고 나서 발생했을 때 무언가를하기 위해 하드 코드되어야합니다. –