Я работаю с приложением, созданным с помощью Next js и Apollo. Я получаю токен в заголовки ответа Graphql. Я могу прочитать этот токен на стороне сервера, и мне нужно передать его провайдеру Apollo на стороне клиента.
cache.writeData({
data: {
isLoggedIn: false
}
});
const afterwareLink = new ApolloLink((operation, forward) => {
return forward(operation).map(response => {
const context = operation.getContext();
const {
response: { headers },
} = context;
if (headers) {
const authorization = headers.get('authorization');
if (authorization) {
console.log(authorization);
// what to do next? I need somehow set isLoggedIn to true...
}
}
return response;
});
});
const link = ApolloLink.from([
afterwareLink,
new RetryLink(),
httpLink
]);
const client = new ApolloClient({
link,
cache
});
function App({ children }){
return (
<ApolloProvider client={client}>
{children}
</ApolloProvider>
);
}
Я попытался установить контекст внутри de ApolloLink:
operation.setContext({ isLoggedIn: true });
Я не могу писать напрямую в кеш, потому что страница отображается на стороне сервера.