Получить / установить cookie при использовании веб-приложения dart http - PullRequest
0 голосов
/ 28 ноября 2018

Я работаю над веб-приложением AngularDart.Мне нужно получить cookie с сервера json, который работает с аутентификацией cookie.Поэтому при подключении я должен отправить учетные данные в теле, а затем сервер вернет мне ответ, содержащий cookie.

import 'package:http/browser_client.dart';
Response response = await _http.post(_loginUrl, body: json.encode(datas));

Ответ в порядке, я получаю 200 кодов статуса и ответ json с сервера,но невозможно найти печенье, пока в Почтальоне я его получаю.Так как же извлечь куки из ответа?

РЕДАКТИРОВАТЬ: Информация, возвращаемая с сервера почтальону:

ASP.NET_SessionId=03e95c12-6098-4f07-b9a9-054377b0311d; path=/; domain=.www.xxxxx.fr; HttpOnly; Expires=Tue, 19 Jan 2038 03:14:07 GMT;

РЕДАКТИРОВАТЬ: Это необработанные заголовки с сервера в приложение Dart:

t=1462088 [st=142]        HTTP_TRANSACTION_READ_RESPONSE_HEADERS
                          --> HTTP/1.1 200 OK
                              Content-Type: application/json; charset=utf-8
                              Server: Microsoft-IIS/8.5
                              Set-Cookie: ASP.NET_SessionId=f229a77e-5eb6-4c6c-9c57-9280947cb434; path=/; HttpOnly
                              X-Powered-By: ASP.NET
                              Access-Control-Allow-Origin: *
                              Date: Fri, 30 Nov 2018 09:52:50 GMT
                              Content-Length: 22443

Итак, сервер отправляет куки, но браузер, похоже, не сохраняет их ...

Хорошо, наконец, проблема была обнаружена на сервере API, разработчик не сделалпроверьте правильно куки.Как правило, на этот сервер отправляется только один файл cookie, поэтому в своем коде он занял первое ... Но из браузера можно отправить несколько файлов cookie одновременно.Поэтому он сделал некоторые изменения, чтобы проверить хороший ...

1 Ответ

0 голосов
/ 28 ноября 2018

Почтальон должен показать, что это файл cookie HttpOnly, который не может быть прочитан из JavaScript (и то же самое относится к Dart, конечно)

См. Также https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Secure_and_HttpOnly_cookies

Cookie будет отправлен обратно на сервер автоматически, поэтому нет необходимости читать его из JavaScript.Разрешение доступа из JavaScript только подрывает безопасность.

...