首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 6-常量ActionController::InvalidAuthenticityToken

Rails 6-常量ActionController::InvalidAuthenticityToken
EN

Stack Overflow用户
提问于 2019-08-20 19:19:40
回答 1查看 4.6K关注 0票数 9

我正在对rails 6进行修补,并且不断地在Rails生成的表单上获得ActionController::InvalidAuthenticityToken,例如(实现rails教程书籍的注册/登录流)

代码语言:javascript
复制
<%= form_for(@user, url: 'signup') do |f| %>
     <%= render 'partials/error_messages' %>
     <%= f.label :name, "Nimi" %>
     <%= f.text_field :name %>
     <%= f.label :email, "E-mail" %>
     <%= f.email_field :email %>
     <%= f.label :password, "Parool" %>
     <%= f.password_field :password %>
     <%= f.label :password_confirmation, "Korda parooli" %>
     <%= f.password_field :password_confirmation %>
     <%= f.submit "Loo konto", class: "button-green" %>
<% end %>

这在所有表单上都会发生,输出转储文件如下所示

application.html.erb

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <title>Storebase - kaasaegsed e-poed!</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body class="bg-gray-100 text-gray-900">
    <% flash.each do |message_type, message| %>
      <div class="bg-blue-100 text-blue-500 flex items-center h-12 px-12 shadow-lg flash-<%= message_type %>"><%= message %></div>
    <% end %>

    <%= yield %>
    <%= debug(params) if Rails.env.development? %>
  </body>
</html>

我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2019-09-02 08:31:44

我在一个控制器中看到了这一点,这个控制器是子类在动作钩子之后设计的。对我来说,这只发生在:destroy操作上。

代码语言:javascript
复制
class MySessionsController < Devise::SessionsController
  after_action :after_login,  only: [:create]
  after_action :after_logout, only: [:destroy]

  private

  def after_login
  end

  def after_logout
  end

我看不出跳过销毁的身份验证有什么风险,所以在控制器中添加下面这行代码就解决了这个问题:skip_before_action :verify_authenticity_token, only:[:destroy]。¯_(ツ)_/`

这是Rails6升级引入的错误还是功能?是否存在我跳过时看不到的安全风险?如有任何见解,我们将不胜感激:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57572473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档