Rails + Devise 登录在 chrome、brave、safari 上运行良好,但在 Firefox 上不行

问题描述 投票:0回答:1

我有一个 ruby on Rails 应用程序运行用于身份验证的设备,并且仅当使用除 Firefox 之外的任何浏览器时,此身份验证在本地和我的新暂存环境中都可以正常工作。在 Firefox 上,仅使用以下凭据,这在 Firefox 桌面版和 Firefox 移动版最新版本上都会发生。

[email protected]
password

设计版本 - 4.9.3

返回的消息只是“无效的电子邮件或密码”,这里是日志。

I, [2024-05-10T23:12:19.920101 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11] Completed 401 Unauthorized in 22ms (ActiveRecord: 17.1ms)
I, [2024-05-10T23:12:19.922483 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11] Processing by Devise::SessionsController#new as HTML
I, [2024-05-10T23:12:19.922636 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Parameters: {"utf8"=>"✓", "authenticity_token"=>"do1eI5ezTWhk1CVF8WcG1NXwDZnBA4KPlvjUYHsrI2MI3iu2Olrk+Wyl05JvHk36vVVoipxi2iO15q9Q8lF5nQ==", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
I, [2024-05-10T23:12:20.335721 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Rendering users/sessions/new.html.erb within layouts/application
I, [2024-05-10T23:12:20.351718 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Rendered users/sessions/new.html.erb within layouts/application (4.0ms)
I, [2024-05-10T23:12:20.353235 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Rendered layouts/_rails_default.html.erb (0.9ms)
I, [2024-05-10T23:12:20.353599 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Rendered layouts/_shim.html.erb (0.1ms)
I, [2024-05-10T23:12:20.355536 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Rendered layouts/_header.html.erb (1.5ms)
I, [2024-05-10T23:12:20.356088 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11]   Rendered layouts/_footer.html.erb (0.2ms)
I, [2024-05-10T23:12:20.359039 #8090]  INFO -- : [6517e003-c130-437c-8839-eac296eeaa11] Completed 200 OK in 436ms (Views: 23.7ms | ActiveRecord: 0.0ms)

这是表格的样子

<% provide(:title, "Log in") %>

<div class="login-container">
  <div class="content">
    <div class="col-sm-4 col-sm-offset-4">
      <h1 class="page-header center">User Login</h1>

      <div class="login_box">
        <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
        <div class="form-group">
          <%= f.label :email %> <%= f.email_field :email, class: 'form-control'
          %>
          <i class="fa fa-user"></i>
        </div>
        <div class="form-group">
          <%= f.label :password %> <%= f.password_field :password, class:
          'form-control' %>
          <i class="fa fa-lock"></i>
        </div>
        <div class="form-group">
          <%= f.label :remember_me do %> <%= f.check_box :remember_me %>
          Remember Me <% end %>
        </div>
        <br />
        <div class="form-group"><%= f.submit "Log in", class: "btn" %></div>
        <% end %>
        <%= link_to "Forgot your password?", new_user_password_path %>
      </div>
    </div>
  </div>
</div>

这很奇怪。

  • 确保 csrf_authenticity_token 元标记正确加载并正常工作。
  • 严格设置会话 cookie 来源
  • 咨询chatgpt并在此处搜索有关我的表格以及我是否遗漏了某些内容
  • 检查设备文档中是否有任何提及..很明显此错误是由于电子邮件或密码无效而导致的,但是..它绝对是正确的电子邮件和密码。

这就是会话控制器中参数的样子

<ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"CPh0uGMCyScGkJVX/84AIByzL4lIMNZH71KtZFA/+GvhqOMV9+8Ccy7+WLtDi+oq9AJxwogKXe/e2f9Nr4jeZg==", "user"=>{"email"=>"[email protected]", "password"=>"password", "remember_me"=>"0"}, "commit"=>"Log in", "controller"=>"sessions", "action"=>"create"} permitted: false>
ruby-on-rails firefox devise
1个回答
0
投票

我已经解决了这个问题,结果是用户错误。我不确定为什么我能够在其他浏览器上登录,但 firefox 消息是正确的。我的种子文件中的电子邮件地址有一个拼写错误,我错过了。

© www.soinside.com 2019 - 2024. All rights reserved.