Как добавить заголовок к каждому Apollo в серверную часть GraphQL в ReactQL

Я хочу добавить заголовок авторизации к каждому моему запросу в серверную часть GraphQL. Я использую Remotbackend.

В документации Apollo есть пример того, как добавить заголовок: https://www.apollographql.com/docs/react/recipes/authentication.html

import { ApolloClient } from 'apollo-client';
import { createHttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';

const httpLink = createHttpLink({
  uri: '/graphql',
});

const authLink = setContext((_, { headers }) => {
  // get the authentication token from local storage if it exists
  const token = localStorage.getItem('token');
  // return the headers to the context so httpLink can read them
  return {
    headers: {
      ...headers,
      authorization: token ? `Bearer ${token}` : null,
    }
  }
});

const client = new ApolloClient({
  link: authLink.concat(httpLink),
  cache: new InMemoryCache()
});

Но как мне это сделать с ReactQL?

1 ответ

Решение

В примере репо ReactQL

https://github.com/reactql/example-auth

метод упоминается:

  config.setApolloNetworkOptions({
    credentials: 'include',
  });

  config.addApolloMiddleware((req, next) => {
    const token = 'the_token'
    req.options.headers = {
      ...req.options.headers,
      authorization: token
    };
    next();
  });

Это добавляет заголовок к каждому запросу!

Другие вопросы по тегам