Ruby on rails ActionController::PostsController中的InvalidAuthenticationToken#创建

Ruby on rails ActionController::PostsController中的InvalidAuthenticationToken#创建,ruby-on-rails,ruby,ruby-on-rails-5.2,Ruby On Rails,Ruby,Ruby On Rails 5.2,在我的rails博客应用程序中,我在尝试提交新帖子的表单时收到以下错误消息: ActionController::PostsController中的InvalidAuthenticationToken#创建 ActionController::InvalidAuthenticationToken 提取的源(在第211行附近): 这是我的posts_controller.rb文件: class PostsController < ApplicationController def ind

在我的rails博客应用程序中,我在尝试提交新帖子的表单时收到以下错误消息:

ActionController::PostsController中的InvalidAuthenticationToken#创建 ActionController::InvalidAuthenticationToken 提取的源(在第211行附近):

这是我的posts_controller.rb文件:

class PostsController < ApplicationController
  def index
  end

  def new
  end

  def create
    @post=Post.new(post_params)
    @post.save

    redirect_to @post
  end

  def show
    @show=Post.find(params[:id])
  end

  private
    def post_params
      params.require(:post).permit(:title,:body)
    end
end
class PostsController
这是我的表格代码:

<font color="#BD004B"><h1>New Post<br></h1></font>

<%=form_for :post, url: posts_path do |f|%>
  <p>
  <%=f.label :title%><br>
  <%=f.text_field :title%>
  </p>
  <p>
  <%=f.label :body%><br>
  <%=f.text_area :body%>
  </p>
  <p>
    <%=f.submit%>
  </p>
<%end%>
新帖子



正如其他人指出的那样,跳过
验证真实性\u令牌
不是一个选项,会在应用程序的安全性上打开一个大漏洞

异常通常出现在两种情况下:您的会话已用完,我们的表单通过ajax发送,没有csrf_meta_标记

该问题的propper解决方案是拯救异常并重置用户会话,如下所示:

rescue_from ActionController::InvalidAuthenticityToken do
  logger.info "Compromised session found."
  reset_session
  flash[:error] = "You're session has expired"
  redirect_to root_path # or new_user_session_path
end

正如其他人指出的,跳过
verify_authenticity\u token
不是一个选项,会在应用程序的安全性上打开一个大漏洞

异常通常出现在两种情况下:您的会话已用完,我们的表单通过ajax发送,没有csrf_meta_标记

该问题的propper解决方案是拯救异常并重置用户会话,如下所示:

rescue_from ActionController::InvalidAuthenticityToken do
  logger.info "Compromised session found."
  reset_session
  flash[:error] = "You're session has expired"
  redirect_to root_path # or new_user_session_path
end

能否共享表单的代码?它可能是视图中缺少的部分,也可能是控制器中缺少的回调方法,该方法跳过了post/put/delete请求的真实性操作。因此,请按照@D1ceWard的要求,请共享视图代码,我也希望看到
应用程序\u controller.rb
代码。@D1ceWard我已经发布了表单code@radoAngelov我已经把表格寄出去了code@radoAngelov
skip\u-before\u操作:验证\u真实性\u令牌
跳过令牌验证,这是一个安全问题,顺便说一句,不是一个解决方案,我们需要更多的信息,比如新/_表单的全部内容,与post和rails版本相关的路由,因为现在一切看起来都很好。您可以共享表单的代码?它可能是视图中缺少的部分,也可能是控制器中缺少的回调方法,该方法跳过post/put/delete请求的真实性操作。因此,请按照@D1ceWard的要求,请共享视图代码,我也希望看到
应用程序\u controller.rb
代码。@D1ceWard我已经发布了表单code@radoAngelov我已经把表格寄出去了code@radoAngelov
skip\u-before\u操作:验证\u真实性\u令牌
跳过令牌验证,这是一个安全问题,顺便说一句,不是一个解决方案,我们需要更多的信息,比如新/_表单的全部内容,路由与post和rails版本相关,因为目前一切看起来都很好。我将其从我的
应用程序_controller.rb
文件中删除,并且我的应用程序的功能没有差异,因此我将其保留。我将其从我的
应用程序_controller.rb
文件中删除,并且我的应用程序的功能没有差异,因此我不说了