set-cookie标头不起作用

Cri*_*ole 10 cookies go web

我正在开发一个带Go的小网站,我正在尝试从我的服务器设置一个cookie.

我在localhost上运行服务器,subdomain-dev.domain.com端口上有127.0.0.1别名5080.

我当我收到我的反应POST,以subdomain-dev.domain.com:5080/login看到set-cookie标题.响应如下:

HTTP/1.1 307 Temporary Redirect
Location: /
Set-Cookie: myappcookie=encryptedvalue==; Path=/; Expires=Fri, 13 Sep 2013 21:12:12 UTC; Max-Age=900; HttpOnly; Secure
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Date: Fri, 13 Sep 2013 20:57:12 GMT
Run Code Online (Sandbox Code Playgroud)

为什么Chrome或Firefox不能录制此内容?在Chrome中,它不会显示在"资源"选项卡中.在FF我也看不到它.并且我在将来的Request标头中也看不到它.

Cri*_*ole 24

Secure在cookie中看到该字符串?

我也是.但仅仅过了几个小时.

如果您已设置安全标志,请确保您通过SSL访问您的站点(https://在URL的开头).

如果您在本地开发并且没有证书,请确保跳过该选项.

  • @julestruong 这绝对是答案......因为我回答了我自己的问题。我并没有尝试从 Javascript 进行访问;只是想设置cookie。这是几年前的事了,但它只是一个会话cookie。 (6认同)

ser*_*ych 12

发现相关的 github 问题响应 cookie 未发送,这有帮助。
就我而言,我在 https 下运行 React 应用程序(使用 mkcert 工具)并发出跨源获取请求并获取响应。响应的 Cookie 直到我才设置

  1. 指定credentials: 'include'获取请求示例获取 api
fetch('https://example.com', {
  credentials: 'include'
});
Run Code Online (Sandbox Code Playgroud)
  1. 指定来自服务器的这些响应标头
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://localhost:3000
Run Code Online (Sandbox Code Playgroud)

Access-Control-Allow-Originheader 具有我的 React 应用程序的 url 值。

  1. 使用 http cookie添加Set-Cookie标头的这些属性 Path=/; HttpOnly; Secure; SameSite=None

希望它能帮助别人!


jim*_*ck3 10

就我而言,我必须将其添加到我的回复中:

access-control-expose-headers: Set-Cookie
Run Code Online (Sandbox Code Playgroud)

我在这里发现我的客户端无法访问我的 Set-Cookie 标头,除非我将它添加到暴露的标头标头中。希望这可以帮助某人!