当前位置: 首页 > 知识库问答 >
问题:

角度注销后无法验证CSRF令牌的真实性

贲凌
2023-03-14

重复的步骤

登录
注销
从服务器登录并获取422无法验证CSRF令牌的真实性

Gems
设计3.5.2
设计令牌\u验证0.1.36

根据其他线程,解决方案是在注销时返回一个新的csrf令牌,然后在客户端的注销成功处理程序中,将XSRF-TOKEN的cookie设置为接收的令牌。我使用的代码如下。有人能告诉我为什么它不起作用吗?最后一个登录请求看起来使用了新的令牌,所以棱角分明的看起来像是从cookie中提取的。

我正在重写designe_token_auth destroy方法,并在渲染中添加csrfParam

  def destroy
    # remove auth instance variables so that after_filter does not run
    user = remove_instance_variable(:@resource) if @resource
    client_id = remove_instance_variable(:@client_id) if @client_id
    remove_instance_variable(:@token) if @token

    if user and client_id and user.tokens[client_id]
      user.tokens.delete(client_id)
      user.save!

      render json: {
    success:true,
    csrfParam: request_forgery_protection_token,
    csrfToken: form_authenticity_token
      }, status: 200

    else
      render_destroy_error
    end
  end

这是ng令牌身份验证注销的客户端成功回调。

$auth.signOut()
      .then(function(resp) {

    $('meta[name=csrf-token]').attr('content', resp.data.csrfToken);
    $cookieStore.put($http.defaults.xsrfCookieName, resp.data.csrfToken);
    $http.defaults.headers.common[$http.defaults.xsrfHeaderName] = resp.data.csrfToken;

    $state.go('login');
      })
      .catch(function(resp) {
    // handle error response
    console.log("error signing out");
      });

我接着问了下面的问题,这个问题和我的问题很相似,但运气不好。Rails、设计认证、CSRF问题https://github.com/lynndylanhurley/devise_token_auth/issues/398

共有1个答案

殷烨
2023-03-14

我遇到了同样的问题,找到了这篇文章,这篇文章给了我几个不同的答案。Rails、设计认证、CSRF问题

我用了卢卡斯对我有效的回答。您所需要做的就是将此行放在配置/初始化器/devise.rb.

config.sign_out_all_scopes = false
 类似资料:
  • 问题内容: 在我的rails应用程序中,我在向api的ajax发布中收到“警告:无法验证CSRF令牌的真实性”。 app / views / layouts / application.html.haml : ajax发布 : 问题答案: 假设您已使用Rails 标记设置了CSRF令牌,则请求的令牌将在meta标记中可用: 由于使用的是jQuery,因此可以通过为密钥调用以下值来将令牌传递给AJA

  • 问题内容: 我在CSRF令牌方面遇到问题。当我提交表单时,正在生成一个新的表单,但是我想我正在生成两个不同的令牌,这有点困惑。还有一个名为的令牌,因此我在开发人员工具中看到了两个不同的cookie(XSRF- TOKEN和_csrf),发布后它们没有变化。 我想要做的是为每个帖子请求生成一个新令牌,并检查它是否有效。我知道为了安全起见应该这样做,但是我坚持了下来。 漫长的一天,我是Express和

  • 我试图使用以下教程实现一个Angular应用程序:https://spring.io/guides/tutorials/spring-security-and-angull-js/ 登录和执行后续HTTP调用也同样有效。Angular成功地追加了CSRF令牌,Spring成功地解析了它。假设令牌为,则请求将包含以下头部: cookie: CsrfHeaderFilter是教程中解释的类(它显然适用

  • 大家好,我很难为我的应用程序设置安全解决方案!!所以我有一个REST API后端,在http://localhost:51030使用Spring框架开发,对于前端,我有一个Angular 2应用程序(最新版本A.K.A.Angular 4),运行速度为http://localhost:4200.我在后端设置了CORS配置,如下所示: 使用此配置只能正常工作,我可以执行从角应用到回弹的请求并获得响应

  • 我正在做简单的身份验证(没有ajax或api),并得到一个CSRF真实性令牌的错误。检查下面的POST请求 根url指向,如下所示 Sign_in页面生成的html视图如下所示: