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



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

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

响应还可以,我从服务器上得到了200个statuscode和json响应,但在Postman中找不到cookie,我确实得到了它。那么,如何从响应中检索cookie呢?

编辑:从服务器返回给邮递员的信息:

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

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

好的,最后在API服务器上发现了一个问题,开发人员没有正确检查cookie。通常,只有一个cookie被发送到该服务器,因此在其代码中,它占用了第一个。。。但从浏览器中,可以同时发送多个cookie。所以他做了一些改变来检查好的。。。

Postman应该显示这是一个无法从JavaScript读取的HttpOnlycookie(当然Dart也是如此(

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

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

最新更新