dart - 使用 dart web 应用程序 http 时获取/设置 cookie

标签 dart angular-dart dart-html

我正在开发一个 AngularDart 网络应用程序。
我需要从使用 cookie 身份验证的 json 服务器检索 cookie。
所以在连接时,我必须在正文中发布凭据,然后服务器给我一个包含 cookie 的响应。

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

响应没问题,我从服务器得到 200 状态码和 json 响应,但在 Postman 中找不到 cookie 我确实得到了它。
那么如何从响应中检索 cookie?

编辑:从服务器返回到 postman 的信息:
ASP.NET_SessionId=03e95c12-6098-4f07-b9a9-054377b0311d; path=/; domain=.www.xxxxx.fr; HttpOnly; Expires=Tue, 19 Jan 2038 03:14:07 GMT;

编辑:这是从服务器到 Dart 应用程序的原始 header :
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

所以服务器发回cookie,但浏览器似乎没有保存它......

好的,最后,在API服务器上发现了一个问题,开发人员没有正确检查cookie。一般来说,只有一个cookie被发送到这个服务器,所以在它的代码中,它采取了第一个......但是从浏览器中,可以同时发送几个cookie。所以他做了一些改变来检查好的...

最佳答案

postman 应该表明这是一个 HttpOnly无法从 JavaScript 读取的 cookie(当然,同样适用于 Dart)

另见 https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Secure_and_HttpOnly_cookies

cookie 将自动发送回服务器,因此无需从 JavaScript 读取它。允许从 JavaScript 访问只会破坏安全性。

关于dart - 使用 dart web 应用程序 http 时获取/设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523857/

相关文章:

constructor - 如何使用工厂构造函数在 Dart 中实现单例模式?

dart - 如果两个不同的组件在同一个 View 中(ngRoute),它们如何共享一个公共(public)对象或通信?

dart - AngularDart浏览器兼容性

dart - 我们如何知道Dart中可触摸的屏幕?

Dart 单元测试不适用于 content-shell

css - 如何使用 Dart 设置 SVG 样式?

Flutter 在 List<Widget> 中查找 Widget

android - 如何在 flutter 中扩展一个 textField 看起来像一个文本区域

dart - 节点,子节点,追加新元素

dart - 在同一应用程序中运行 Normal Dart HTML 和 Angular Dart 2