相关疑难解决方法(0)

在AngularJS中设置应用程序范围的HTTP标头

有没有办法将$httpProvider标题设置在外面angular.module('myApp', []).config()

我在登录用户后从服务器获取Auth-Token,我需要将其作为HTTP Header添加到所有后续请求中.

javascript mvvm angularjs

47
推荐指数
2
解决办法
5万
查看次数

Rails,设计认证,CSRF问题

我正在使用Rails进行单页应用程序.登录和注销时,使用ajax调用Devise控制器.我得到的问题是,当我1)登录2)退出然后再次登录不起作用.

我认为它与CSRF令牌有关,当我退出时它会被重置(虽然它不应该是afaik),并且因为它是单页,旧的CSRF令牌正在xhr请求中发送,从而重置会话.

更具体地说,这是工作流程:

  1. 登入
  2. 登出
  3. 登录(成功201.但是WARNING: Can't verify CSRF token authenticity在服务器日志中打印)
  4. 随后的ajax请求未通过401未授权
  5. 刷新网站(此时,页眉中的CSRF更改为其他内容)
  6. 我可以登录,它可以工作,直到我尝试退出并重新登录.

任何线索非常感谢!如果我可以添加更多详细信息,请与我们联系.

authentication ajax ruby-on-rails csrf devise

39
推荐指数
5
解决办法
2万
查看次数

如何使用Laravel API在AngularJS表单中发送csrf_token()?

我正在尝试构建一个角度+ laravel休息应用程序.我可以获得我的数据库的视图.当我尝试添加新项目时.我500 error告诉我错配csrf令牌.我的表单布局是:

<form class="form-horizontal" ng-submit="addItem()">

  <input type="text" ng-model="itemEntry" placeholder="Type and hit Enter to add item">
</form>
Run Code Online (Sandbox Code Playgroud)

这是我尝试将项添加到数据库的方式:

$scope.addItem = function(CSRF_TOKEN) {
    $http.post('/shop', { text: $scope.itemEntry, csrf_token: CSRF_TOKEN} ).success(function(data, status) {
        if(data) {
            var last = _.last($scope.items);
            _token = CSRF_TOKEN;
            $scope.items.push({text: $scope.itemEntry, bought: false, id: (last.id + 1) });
            $scope.itemEntry = '';
            console.log($scope.items);
        } else {
            console.log('There was a problem. Status: ' + status + '; Data: ' + data);
        }
    }).error(function(data, status) {
            console.log('status: ' + status); …
Run Code Online (Sandbox Code Playgroud)

csrf-protection laravel angularjs

23
推荐指数
4
解决办法
4万
查看次数

无法验证CSRF令牌真实性Rails 4.1

我正在开发一个简单的网站,让管理员创建问题,用户解决它们.我使用ActiveAdmin作为管理部分,使用简单的AJAX调用来解决部分用户问题.尝试通过ActiveAdmin :: Devise登录最初是成功的,但无法登出.我删除了所有cookie,从那以后,如果没有CSRF令牌真实性异常,我无法进行POST操作.我在application.html.erb的头部有正确的meta_tags,声明了jquery_ujs(其他线程说它是一个常见问题),在两个POST操作中都存在真实性令牌.我甚至试图通过skip_before_filter避免验证:verify_authenticity_token但ActiveAdmin登录和POST示例仍然失败.日志在下面,您可以看到令牌存在.我还展示了Gemfile,以防任何一个破坏CSRF的东西.

  • Rails版本[4.1.0]
  • Ruby版本[2.1]
  • Phusion Passenger Version [4.0.41]

提前致谢.

application.html.erb

<head>
  <title>Introducción Matematicas</title>
  <%= stylesheet_link_tag    "application", media: "all"%>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <link href="http://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700|Roboto+Slab:300,400" rel="stylesheet" type="text/css">
  <%= csrf_meta_tags %>
</head>
Run Code Online (Sandbox Code Playgroud)

的application.js

//= require jquery
//= require jquery_ujs
//= require_tree ../../../vendor/assets/javascripts/.
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

应用控制器

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :null_session
  #skip_before_filter :verify_authenticity_token
  before_filter …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails csrf ruby-on-rails-4

11
推荐指数
2
解决办法
3万
查看次数

单页应用程序的Rails CSRF保护(反应,角度,余烬)

好。我正式对这个问题失去了理智。

我们使用默认的Rails应用程序(5,但我也尝试使用4默认应用程序)。

我正在尝试使用一个简单的javascript代码将ajax POST请求发送到一个控制器动作。

在我的ApplicationController代码中:

class ApplicationController < ActionController::Base

  after_action :set_csrf_cookie

  protected

    def set_csrf_cookie
      cookies["X-CSRF-Token"] = form_authenticity_token
    end

end
Run Code Online (Sandbox Code Playgroud)

设置"X-CSRF-Token"值为的Cookie form_authenticity_token

之后,我可以使用以下代码在SPA(单页应用程序)中读取此cookie:

<script>
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(";");
    for (var i = 0; i < ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) === " ") c = c.substring(1, c.length);
      if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
  }

// …
Run Code Online (Sandbox Code Playgroud)

javascript ajax ruby-on-rails csrf csrf-protection

7
推荐指数
2
解决办法
2537
查看次数