У меня угловое 7 приложение, выполняющее аутентификацию с Couchdb Cookie устанавливается в браузере при выполнении POST _session с учетными данными. Но опять же при выполнении GET _session для проверки статуса аутентификации cookie не устанавливается автоматически даже после использования withCredentials: true
в заголовке POST.
Запрос POST:
let _httpHeaders = new HttpHeaders();
_httpHeaders = _httpHeaders.set('Accept', 'application/json');
_httpHeaders = _httpHeaders.set('Content-type', 'application/json');
_httpHeaders = _httpHeaders.set('Authorization', 'Basic ' + btoa(data.name + ':' + data.password));
const options = { headers: _httpHeaders, withCredentials: true };
console.log(options);
return this._httpService.doAsyncTask(AppConstants.LOGIN_URL, 'POST', data, options);
Запрос GET:
return this._httpService.doAsyncTask(AppConstants.LOGIN_URL + '?basic=true', 'GET');
Установка withCredentials: true
в заголовке для запроса GET также не работает.
Ответ, который я получаю:
{"error": "unauthorized", "reason": "Пожалуйста, войдите в систему."}
Заголовки запроса и ответа для вызова GET:
Заголовок запроса:
Accept: application/json, text/plain, */*
Origin: http://localhost:5800
Referer: http://localhost:5800/login
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
Заголовок ответа:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:5800
Access-Control-Expose-Headers: content-type, cache-control, accept-ranges, etag, server, x-couch-request-id, x-couch-update-newrev, x-couchdb-body-time
Cache-Control: must-revalidate
Connection: keep-alive
Content-Length: 50
Content-Type: application/json
Date: Fri, 14 Jun 2019 09:41:31 GMT
Server: nginx/1.10.3 (Ubuntu)
X-Couch-Request-ID: 3fb687405b
X-CouchDB-Body-Time: 0