0

我有一个 Angular 应用程序,我打算使用 Phoenix 作为后端。Phoenix 默认支持 CSRF 保护,其中 CSRF 令牌存储到会话中。当 Phoenix 渲染视图时这很好用,但是当我的前端是使用 Angular js 构建时,我如何访问 CSRF 令牌。目前,我正在向 get_csrf_token() menthod 发出获取请求,但我正在寻找更好的解决方案。

csrf_token = get_csrf_token()

注意:您也可以推荐任何其他支持 CSRF 保护的 Elixir 框架。

4

1 回答 1

3

您可以将 CSRF 令牌存储在应用程序布局中的元标记csrf_meta_tag/0中,然后从角度读取它并将其设置为默认标题$httpProvider

angular.module('MyApplication', []).config(["$httpProvider", function ($httpProvider) {
  var token = document.querySelector('meta[name=csrf-token]').content;
  $httpProvider.defaults.headers.common['X-CSRF-Token'] = token;
}])
于 2017-05-29T13:45:19.660 回答