Set-Cook ie не добавляйте cook ie в хранилище браузера - PullRequest
0 голосов
/ 22 января 2020

Здравствуйте, извините за мой английский 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);

Спасибо за помощь:)

...