Как можно установить повара ie с помощью токена, используя сервер apollo? - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу установить токен на куки после входа пользователя на сайт.

Я нашел этот пакет apollo-server-plugin-http-headers .

Так что я пытаюсь сделать это в моем преобразователе.

async loginUser(_, { loginInput }, context) {
            ...

            const token = generateToken(user);

            context.setCookies.push({
                name: "cookieName",
                value: token,
                options: {
                    httpOnly: true,
                    maxAge: 3600,
                    path: "/",
                    sameSite: true,
                    secure: true
                }
            });

            console.log(context, 123)

            return {
                ...
                token
            }

При настройке сервера apollo в

    const httpHeadersPlugin = require("apollo-server-plugin-http-headers");

    const server = new ApolloServer({
    typeDefs,
    resolvers,
    plugins: [httpHeadersPlugin],
    context: {
        setHeaders: new Array(),
        setCookies: new Array(),
    }
});

Я проверяю вкладку куки браузера, в приложении Chrome - > Печенье, но там ничего не установлено. Я не уверен, что я делаю не так? Может быть, есть другой способ сделать это?

Вся помощь будет высоко ценится

1 Ответ

0 голосов
/ 19 марта 2020

Невозможно установить параметр повара ie secure для локального хоста, т.е. в режиме разработки. Попробуйте установить secure: process.env.NODE_ENV === 'production'

То есть:

context.setCookies.push({
  name: "cookieName",
  value: token,
  options: {
    httpOnly: true,
    maxAge: 3600,
    path: "/",
    sameSite: true,
    secure: process.env.NODE_ENV === 'production'
  }
});

Попытка сделать куки со сшиванием схемы была для меня непростой задачей. Для более глубокого погружения вы можете проверить этот репо , в котором используется плагин apollo-server-plugin-http-headers.

...