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 доступно, но не удается войти в браузер с помощью углового клиента.Пожалуйста, предложите мне, чего не хватает.Спасибо