Здравствуйте, извините за мой английский sh я французский.
С тех пор как я перешел на Аполлон, я больше не могу получать свои куки. Я нашел несколько тем, в которых говорилось о моей проблеме, но ни одна из них не решила ее.
Когда я отправляю повара ie со своего сервера на мой клиент, он не сохраняется в браузере.
однако если я вижу console.log (ctx.res), я вижу его
'access-control-allow-origin': [ 'Access-Control-Allow-Origin', 'http://localhost:3001' ],
vary: [ 'Vary', 'Origin' ],
'access-control-allow-credentials': [ 'Access-Control-Allow-Credentials', 'true' ],
'set-cookie':
[ 'Set-Cookie',
'access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImI3M2E3ZjE3LTA5ZTktNDJlMy05NDNhLWNhYTQ5NGZmN2RmNiIsInVzZXJuYW1lIjoidGVzdDkxMzAiLCJzY29wZXMiOlsiTUVNQkVSIiwiTU9ERVJBVE9SIiwiU1VQRVJBRE1JTiIsIkVESVRPUiJdLCJpYXQiOjE1Nzk3MTUzMDAsImV4cCI6MTU3OTcxODkwMH0.jqarZ8bUGCXcCTFNe2ciVI7aZOFSmPp60UbOZiIaKFE; Domain=http://localhost:3001; Path=/; HttpOnly; Secure' ]
. Я могу видеть его на вкладке cook ie на firefox. Но не на вкладке хранилища. На почтальоне тоже самое, я вижу вкладку заголовков в свойстве set-cook ie, но не на вкладке cookie.
Мне очень трудно понять
Моя конфигурация
Клиент Apollo:
import { ApolloClient } from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { createUploadLink } from 'apollo-upload-client';
const link = createUploadLink({
uri: 'http://localhost:3000/graphql',
credentials: 'include',
})
const client = new ApolloClient({
link,
cache: new InMemoryCache(),
});
export default client;
Сервер Apollo
const server = new ApolloServer({
schema: await buildSchema({
resolvers: env.app.dirs.resolvers,
// automatically create `schema.gql` file with schema definition in current folder
emitSchemaFile: path.resolve(__dirname, '../api', 'schema.gql'),
authChecker,
globalMiddlewares: [LangMiddleware], // No opti, à revoir
container: Container,
}),
context: ({ req, res }) => {
return {
req,
res,
};
},
formatError: error => {
if (error.message === 'Argument Validation Error') {
error.extensions.code = 'ARGUMENT_VALIDATION_ERROR';
}
return error
},
});
const corsOptions = {
credentials: true,
origin: 'http://localhost:3001',
};
const app = express();
const mainapp = express();
const staticapp = express();
// Run application to listen on given port
if (!env.isTest) {
staticapp.use(serveStatic('public'))
mainapp.use(cors(corsOptions));
mainapp.use(cookieParser());
mainapp.use(bodyParser.json());
server.applyMiddleware({
app: mainapp,
path: '/',
cors: false,
});
app.use(vhost('local', mainapp));
app.use(vhost('static.local', staticapp));
app.listen(env.app.port);
Спасибо за помощь:)