Я разрабатываю функцию входа / регистрации пользователя в рамках более крупного проекта и работаю над локальным хостом (сервер apollo и реагирует на интерфейс apollo). Я использую экспресс-сессию для своих сессий.
При отправке моего логина я вижу, что в заголовке ответа есть set-cookie, но он не установлен в Application-> Cookies.
Я пробовал разные браузеры, используя createHttpLink, apollo-boost и используя include & same-origin (используя same-origin).
Я пытался заставить это работать в течение 2 недель, и у меня закончились попытки попробовать, это был мой последний вариант! Я знаю, что это будет что-то действительно тривиальное, но я просто не вижу этого.
Если я использую GraphqL Playground и меняю настройки, чтобы включить учетные данные, я вижу, что там устанавливаются файлы cookie.
Сервер работает на локальном хосте: 8080 / graphql
Клиент работает на локальном хосте: 3000
Клиент:
const client = new ApolloClient({
link: new HttpLink({
uri: 'http://localhost:8080/graphql',
credentials: 'same-origin',
}),
cache: new InMemoryCache()
});
Корс:
app.use(
cors({
origin: 'http://localhost:3000',
credentials: true
})
);
Экспресс-сессия:
app.use(
session({
name: "sess",
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
httpOnly: true,
secure: false,
maxAge: 1000 * 60 * 60 * 24 * 7,
},
})
);
Ответное печенье:
HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Vary: Origin
Access-Control-Allow-Credentials: true
Content-Type: application/json
Content-Length: 69
set-cookie: sess=s%3AAZXnGb5BVc1aAOwH6zBNiT8mB6Ebf75k.in%2BPU1OvxymDPdPIZBf8%2FQzrRmM0S04tXFzXDwYCnk8; Path=/; Expires=Sat, 03 Nov 2018 13:59:57 GMT; HttpOnly
Date: Sat, 27 Oct 2018 13:59:57 GMT
Connection: keep-alive