Angular Jhipster - 如何在所有 http 请求中发送 x-csrf 令牌?
Angular Jhipster - How to send x-csrf token in all http requests?
我从时髦生成器生成一个应用程序并创建一个新工厂来调用我的服务。
在 headers 中使用 x-csrf 令牌调用所有现有服务,但是当我尝试对我的工厂进行 Get 或 Post 时,我得到了错误 401, 未授权
在我的应用程序配置中,我有这个:
//enable CSRF
$httpProvider.defaults.xsrfCookieName = 'CSRF-TOKEN';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN';
这是我的工厂:
angular.module('jhipsterApp')
.factory('WalletsService', function ($http) {
return {
findAll: function () {
return $http.get('api/walletslist/').then(function (response) {
return response.data;
});
}
};
});
当我执行 findAll 函数时,我得到这个错误:
[Error] Failed to load resource: the server responded with a status of 401 (Unauthorized) (walletslist, line 0)
x-csrf 保存在 cookie 中,但我如何在 headers 中传递它?
谢谢
查看 SecurityConfiguration,/api/** 需要身份验证,因此您的端点也需要它。这不是 CSRF 问题,只是您必须登录。
如果 api/walletslist 必须是 public,您必须在 SecurityConfiguration
中执行此操作
.antMatchers("/api/walletslist").permitAll()
警告:顺序很重要并确保您的授权 URL 与您的 angular 服务和 REST 控制器请求映射相匹配。很容易在一个地方忘记最后一个斜线字符。
为什么要使用 $http,为什么不像其他 JHipster 服务那样使用 $resource?
我从时髦生成器生成一个应用程序并创建一个新工厂来调用我的服务。
在 headers 中使用 x-csrf 令牌调用所有现有服务,但是当我尝试对我的工厂进行 Get 或 Post 时,我得到了错误 401, 未授权
在我的应用程序配置中,我有这个:
//enable CSRF
$httpProvider.defaults.xsrfCookieName = 'CSRF-TOKEN';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN';
这是我的工厂:
angular.module('jhipsterApp')
.factory('WalletsService', function ($http) {
return {
findAll: function () {
return $http.get('api/walletslist/').then(function (response) {
return response.data;
});
}
};
});
当我执行 findAll 函数时,我得到这个错误:
[Error] Failed to load resource: the server responded with a status of 401 (Unauthorized) (walletslist, line 0)
x-csrf 保存在 cookie 中,但我如何在 headers 中传递它?
谢谢
查看 SecurityConfiguration,/api/** 需要身份验证,因此您的端点也需要它。这不是 CSRF 问题,只是您必须登录。
如果 api/walletslist 必须是 public,您必须在 SecurityConfiguration
中执行此操作.antMatchers("/api/walletslist").permitAll()
警告:顺序很重要并确保您的授权 URL 与您的 angular 服务和 REST 控制器请求映射相匹配。很容易在一个地方忘记最后一个斜线字符。
为什么要使用 $http,为什么不像其他 JHipster 服务那样使用 $resource?