настройка файлов cookie из решателя GraphQL - PullRequest
0 голосов
/ 14 апреля 2020

Я изучаю GraphQL через https://github.com/the-road-to-graphql/fullstack-apollo-express-postgresql-boilerplate

, и мне интересно, как установить куки из резольвера, как я привык использовать Express для этого.

signIn: async (
  parent,
  { login, password },
  { models, secret },
) => {
  const user = await models.User.findByLogin(login);

  if (!user) {
    throw new UserInputError(
      'No user found with this login credentials.',
    );
  }

  const isValid = await user.validatePassword(password);

  if (!isValid) {
    throw new AuthenticationError('Invalid password.');
  }

  return { token: createToken(user, secret, '5m') };
},

вместо того, чтобы возвращать объект токена, как я могу получить доступ к объекту ответа и добавить повара ie?

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете достичь этого, используя объект контекста, глядя на пример, который вы отправляете. Вам нужно будет вернуть переменную res из этой функции https://github.com/the-road-to-graphql/fullstack-apollo-express-postgresql-boilerplate/blob/master/src/index.js#L55

Объект контекста находится в третьем аргументе вашего преобразователя. Контекст создается при каждом запросе и доступен для всех распознавателей.

Пример:

const server = new ApolloServer({
  context: ({res}) => ({res})
});

function resolver(root, args, context){
  context.res// express
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...