【问题标题】:XSRF-TOKEN not being sent By Angular 2 as it says it will do by defaultXSRF-TOKEN 不是由 Angular 2 发送的,因为它说默认情况下会发送
【发布时间】:2017-06-25 18:17:17
【问题描述】:

我的登录请求的响应如下所示:-

  • 它有 Cookie JSESSIONID 和 XSRF-TOKEN

现在其他后续请求如下所示。我读到 Angular 2 默认从 cookie 中获取值并附加到每个后续请求的标头,但它没有这样做。

请让我知道我应该怎么做,以便 Angular 自动全局处理它。

CORS 设置

res.set('Access-Control-Allow-Origin', req.headers.origin);
    res.set('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE,OPTIONS');
    res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding');
    res.set('Access-Control-Allow-Credentials', true);

【问题讨论】:

  • 请添加您的 CORS 设置配置。
  • @lin 与 CORS 有什么关系。我会把它拉起来。只需一分钟
  • @lin 完成。我确实设置了 CORS 设置
  • 哦,对不起。这与 CORS 无关。我错了。但是为什么您的服务器响应 403 被禁止?
  • @lin 由于请求中没有 XSRF-TOKEN 所以后端禁止。

标签: javascript angular cookies csrf-protection


【解决方案1】:

您正在发出 GET 请求并期待 XSRF 令牌

默认情况下,拦截器会在所有变异请求上发送此 cookie (POST 等)到相对 URL,但不是在 GET/HEAD 请求上或 带有绝对 URL 的请求。

https://angular.io/guide/http#security-xsrf-protection

【讨论】:

    猜你喜欢
    • 2018-02-12
    • 2021-04-05
    • 1970-01-01
    • 2018-06-13
    • 2012-03-16
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多