【发布时间】:2020-12-23 02:24:29
【问题描述】:
我有一个托管在 dev.subdomain.mydomain.com 上的前端 Angular 应用程序。该应用程序向托管在dev.api.mydomain.com 上的 .net CORE API 发出 HTTP 请求。我的 Angular 应用程序有一个与之关联的会话 cookie,具有以下安全属性:
Secure=true
HttpOnly=true
SameSite=None
Domain=.mydomain.com
我希望在每次请求时都将 cookie 发送到后端服务器,但由于某种原因,请求在没有它的情况下发送。
我添加了一个角度拦截器,它将withCredentials 选项添加到传出请求中
req = req.clone({
headers: req.headers.set('Content-Type', 'application/json'),
withCredentials: true
});
但这也无济于事。在 Chrome 和 Firefox 中都进行了测试,结果相同。
Update 2:我已经设置了我的 API,以便在预检响应中包含以下标头:
Access-Control-Allow-Origin: https://dev.subdomain.mydomain.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type,withcredentials
Access-Control-Allow-Methods: GET
Cookie 仍未发送。
【问题讨论】:
-
Cookies 应该只在前端使用。您到底想在服务器端使用 cookie 做什么?
-
它是一个会话 cookie。我用它通过后端安全系统识别用户
-
Oauth 令牌不是比尝试使用 cookie 更好的解决方案吗?
-
我们将此 icookie n 与 jwt 令牌结合使用。这是我们正在尝试解决的遗留系统。我的问题是我需要将 cookie 发送到服务器,我觉得这种情况并不罕见
-
@mduck 你找到解决方案了吗?甚至我也面临着类似的问题。
标签: angular http cookies session-cookies httpcookie