我正在尝试使用Rails 6,但是我经常在由Rails生成的表单上遇到ActionController :: InvalidAuthenticityToken错误,例如(实现Rails教程书的注册/登录流程)。
这种情况发生在所有表单中,输出转储的样子如下。
<%= 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
<!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>
我该怎么办?
skip_before_action :verify_authenticity_token, only:[:index, :show]
这段代码,您有什么看法? - cnnrskip_before_action :verify_authenticity_token, only:[:create]
确实可以工作,但这样做会不会让我的登录面临攻击风险? - Rando Hinncreate
操作的令牌验证,因为这是很危险的。请同时添加你的控制器和application_controller
。 - cnnr