0

必须将标头中的 cookie 从节点发送到角度客户端。默认它已经在 API 域中设置了 cookie。如果我在 cookie 中设置域,它就不起作用。

请澄清哪一种是设置cookie的正确方法?

res.setHeader('Set-Cookie', ['token=' + token + ';httpOnly;Domain=abc.com;Path=/;secure:true;']);
res.cookie('token', token, { maxAge: 60*60*12, httpOnly: true,Domain=abc.com});     
4

1 回答 1

0

您的 API 和 Angular 应用程序是否在不同的域上?如果是这样,您将不得不通过withCredentialsangular 的 http 调用传递选项。withCredentials是一个布尔标志,指示是否应使用 cookie、授权标头或 TLS 客户端证书等凭据进行跨站点访问控制请求。此外,此标志还用于指示何时在响应中忽略 cookie。默认值为假。来自不同域的 XMLHttpRequest 无法为其自己的域设置 cookie 值,除非在发出请求之前将 withCredentials 设置为 true。MDN上的更多详细信息

withCredentials使用标志修改您的角度 HTTP 调用。忘记

this.httpClient.get(url, { withCredentials: true})

对于 POST

this.httpClient.post(url, body, { withCredentials: true})
于 2019-09-25T10:17:49.033 回答