Cookie не установлен в браузере из ответа HTTPS - PullRequest
0 голосов
/ 27 февраля 2019

angular v5x, узел v8.11.1, google chrome v72.0.3626.109 64-битное окно 8

Возможность получать cookie на стороне клиента, если клиент и сервер находятся в одном домене, например https:example.com и не может получить cookie, если клиент и сервер находятся в другом домене, например, клиент находится в домене https://sub1.example1.com, а сервер находится в домене https://sub2.example2.com

На сервере настроен допустимый CORS:

res.header("Access-Control-Allow-Origin", req.get('origin'));
res.header("Access-Control-Allow-Credentials", true);
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.header("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE");
res.header("Access-Control-Expose-Headers", "*");

Присоединение файла cookie с объектом ответа HTTPS

var cookieConfigOptions = {
    "maxAge": 946080000,
    "httpOnly": false,
    "secure": true,
    "signed": true,
    "domain": ".sub1.example1.com"
};

res.cookie("token", "80444cd0-38fa-11e9-9c54-f3ac2c85d660_Aaaaa_Bbb_CC", cookieConfigOptions);

Заголовки ответа API REST:

[Symbol(outHeadersKey)]:
   { 'x-powered-by': [ 'X-Powered-By', 'Express' ],
     'access-control-allow-credentials': [ 'Access-Control-Allow-Credentials', 'true' ],
     'access-control-allow-origin': [ 'Access-Control-Allow-Origin','https://sub1.example1.com' ],
     'access-control-allow-headers': [ 'Access-Control-Allow-Headers','Origin, X-Requested-With, Content-Type, Accept, Authorization' ],
     'access-control-allow-methods': [ 'Access-Control-Allow-Methods', 'POST, PUT, GET, DELETE' ],
     'access-control-expose-headers': [ 'Access-Control-Expose-Headers', '*' ],
     'x-ratelimit-limit': [ 'X-RateLimit-Limit', 5000 ],
     'x-ratelimit-remaining': [ 'X-RateLimit-Remaining', 4999 ],
     'set-cookie':
      [ 'Set-Cookie',
        'token=s%3A80444cd0-38fa-11e9-9c54-f3ac2c85d660_Aaaaa_Bbb_CC.PhB51SpDR%2FycSc2NVYy7mJ9WbjcgzHrAqGKrL95GppQ; Max-Age=946080000; Domain=.sub1.example1.com; Path=/; Expires=Wed, 17 Feb 2049 12:40:15 GMT; Secure' ],
     etag: [ 'ETag', 'W/"7d-r04KVX+lvHV/X56rSN84FzKivtU"' ] } }

Добавлена ​​опция withCredentials в перехватчике в коде ng5 при запросе API.

req = req.clone({ withCredentials: true });

В заголовке ответа set-cookie доступно, но не удается войти в браузер с помощью углового клиента.Пожалуйста, предложите мне, чего не хватает.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...