【问题标题】:JHipster and AngularJS: How to deal with the CSRF in AJAX requests properly?JHipster 和 AngularJS:如何正确处理 AJAX 请求中的 CSRF?
【发布时间】:2015-10-21 22:53:41
【问题描述】:

我必须为 JHipster 创建另一个简单的 html 页面,它必须执行 AJAX 请求。它包含一个很小的 ​​AngularJS 应用程序,所以我复制了一些 JHipster 代码:

var app = angular.module('app', ['dep1', 'dep2', 'dep3']); app.config(function ($httpProvider) { $httpProvider.defaults.xsrfCookieName = 'CSRF-TOKEN'; $httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN'; });

然后我像这样执行 HTTP 请求:

$http.post("/controller/execute", {code: ourCode})

这会产生错误。但是,然后我重新加载页面,一切都像魅力一样。然后我 grep'ed 来源,发现在 auth.session.service.js 中你使用以下代码来获取 CSRF 令牌: $http.get('api/account');

我将此 sn-p 添加到我的 web 应用程序中,现在效果很好。

但是我想知道是否有更好的解决方案(避免额外的请求?)。 我怀疑这个问题太宽泛了,但想不出如何让它变得简单。

【问题讨论】:

    标签: ajax angularjs csrf jhipster


    【解决方案1】:

    默认情况下,JHipster 正确处理 CSRF,在服务器端使用 Spring Security,在客户端使用 AngularJS。

    正如您所说,您只是从 JHipster 复制了一些代码:您真的在使用 JHipster,还是只是复制/粘贴客户端代码?如果您没有正确配置服务器,这将不起作用,这就是我们的工作所在。

    通常您不必复制/粘贴该 AngularJS 配置,我们会为您完成所有这些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2022-01-23
      • 2015-08-28
      • 1970-01-01
      • 2018-04-01
      相关资源
      最近更新 更多