gpt4 book ai didi

ruby-on-rails - Rails 6-常量ActionController::InvalidAuthenticityToken

转载 作者:行者123 更新时间:2023-12-03 14:38:47 26 4
gpt4 key购买 nike

我正在修改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 %>

这在所有形式上都会发生,并且输出转储看起来像这样

Dumps

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>

我应该怎么办?

最佳答案

在一个将Devise子类化以获取后续 Action Hook 的 Controller 中看到了这一点。对我来说,这只是在:destroy Action 上发生的。

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


我看不到销毁时跳过身份验证的风险,因此在 Controller 内添加以下行对我来说解决了该问题: skip_before_action :verify_authenticity_token, only:[:destroy]。 ¯_(ツ)_/¯

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

关于ruby-on-rails - Rails 6-常量ActionController::InvalidAuthenticityToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57572473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com