设计精巧的Rails,在首次登录后不会重定向

时间:2020-02-06 06:44:19

标签: ruby-on-rails ruby authentication redirect devise

第一次登录(仅打开浏览器)时,登录后的重定向无效。 但是之后,刷新页面并再次登录,即可进行重定向!

场景:

  1. 打开类似Chrome的浏览器
  2. 转到localhost:3000 /
  3. 尝试登录
  4. 仅在中显示处理消息,而不重定向
  5. 刷新页面(登录状态)
  6. 注销
  7. 尝试再次登录
  8. 这次重定向工作正常。
  9. 之后,重定向就可以正常工作了。

我检查了开发人员工具的网络面板。

登录后重定向失败时,“ Http响应”很奇怪。 enter image description here

当登录后成功重定向时,Http Response是这个。 enter image description here

请有人告诉我是什么问题。...

更新--------------

关注的是Rails中的日志

{"message":"Started POST \"/users/sign_in\" for ::1 at 2020-02-06 16:19:39 +0900","log.level":"INFO","timestamp":1580973579.0653708}

{"message":"Processing by Users::SessionsController#create as HTML","log.level":"INFO","timestamp":1580973579.082703}

{"message":"  Parameters: {\"authenticity_token\"=>\"wdmq/LDDiGJGXAdONS2RrYIflNwLn1dUnIHKr+GDkXLvE7xrZt7ptkRldAtUb6/TsMyZS8FqoTGbKXk4c7uDWw==\", \"os_type\"=>\"\", \"device_key\"=>\"\", \"user\"=>{\"login_id\"=>\"test\", \"password\"=>\"[FILTERED]\", \"remember_me\"=>\"0\"}, \"commit\"=>\"로그인\"}","log.level":"INFO","timestamp":1580973579.082936}

{"message":"  \u001b[1m\u001b[36mUser Load (1.0ms)\u001b[0m  \u001b[1m\u001b[34mSELECT `users`.* FROM `users` WHERE `users`.`deleted_at` IS NULL AND `users`.`login_id` = 'test' ORDER BY `users`.`id` ASC LIMIT 1\u001b[0m","log.level":"DEBUG","timestamp":1580973579.0854762}

{"message":"  \u001b[1m\u001b[35m (0.2ms)\u001b[0m  \u001b[1m\u001b[35mBEGIN\u001b[0m","log.level":"DEBUG","timestamp":1580973579.1425989}

{"message":"  \u001b[1m\u001b[36mLoginActivity Create (0.4ms)\u001b[0m  \u001b[1m\u001b[32mINSERT INTO `login_activities` (`scope`, `strategy`, `identity`, `success`, `user_type`, `user_id`, `context`, `ip`, `user_agent`, `referrer`, `created_at`) VALUES ('user', 'database_authenticatable', 'test@test.com', TRUE, 'User', 1137, 'users/sessions#create', '::1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', 'http://localhost:3000/users/sign_in', '2020-02-06 07:19:39')\u001b[0m","log.level":"DEBUG","timestamp":1580973579.143883}

{"message":"  \u001b[1m\u001b[35m (0.6ms)\u001b[0m  \u001b[1m\u001b[35mCOMMIT\u001b[0m","log.level":"DEBUG","timestamp":1580973579.1452632}

{"message":"[ActiveJob] Enqueued AuthTrail::GeocodeJob (Job ID: aff35661-3812-4fc4-a0cc-4223862c8e6e) to Sidekiq(default) with arguments: #<GlobalID:0x00007fb27caa8468 @uri=#<URI::GID gid://plus/LoginActivity/31597>>","log.level":"INFO","timestamp":1580973579.146951}

{"message":"  \u001b[1m\u001b[35m (0.1ms)\u001b[0m  \u001b[1m\u001b[35mBEGIN\u001b[0m","log.level":"DEBUG","timestamp":1580973579.148587}

{"message":"  \u001b[1m\u001b[36mUser Update (0.3ms)\u001b[0m  \u001b[1m\u001b[33mUPDATE `users` SET `users`.`sign_in_count` = 248, `users`.`current_sign_in_at` = '2020-02-06 07:19:39', `users`.`last_sign_in_at` = '2020-02-06 07:19:24', `users`.`updated_at` = '2020-02-06 07:19:39' WHERE `users`.`id` = 1137\u001b[0m","log.level":"DEBUG","timestamp":1580973579.1495512}

{"message":"  \u001b[1m\u001b[35m (0.4ms)\u001b[0m  \u001b[1m\u001b[35mCOMMIT\u001b[0m","log.level":"DEBUG","timestamp":1580973579.151389}

{"message":"ensure_primary_database sessions create","log.level":"WARN","timestamp":1580973579.152593}

{"message":"  \u001b[1m\u001b[36mLoginActivity Load (0.7ms)\u001b[0m  \u001b[1m\u001b[34mSELECT `login_activities`.* FROM `login_activities` WHERE `login_activities`.`user_id` = 1137 AND `login_activities`.`user_type` = 'User' ORDER BY `login_activities`.`created_at` DESC LIMIT 1 OFFSET 1\u001b[0m","log.level":"DEBUG","timestamp":1580973579.1545558}

{"message":"  \u001b[1m\u001b[36mCACHE LoginActivity Load (0.0ms)\u001b[0m  \u001b[1m\u001b[34mSELECT `login_activities`.* FROM `login_activities` WHERE `login_activities`.`user_id` = 1137 AND `login_activities`.`user_type` = 'User' ORDER BY `login_activities`.`created_at` DESC LIMIT 1 OFFSET 1\u001b[0m","log.level":"DEBUG","timestamp":1580973579.155754}

**{"message":"Redirected to http://localhost:3000/","log.level":"INFO","timestamp":1580973579.157964}
{"message":"Completed 302 Found in 76ms (ActiveRecord: 3.8ms | Allocations: 15600)\n\n","log.level":"INFO","timestamp":1580973579.158774}**

此后,站点处于冻结状态(正在处理请求...),因此没有日志。

1 个答案:

答案 0 :(得分:1)

这对您来说可能为时已晚,但对其他遇到相同问题的人而言,则为时已晚。这与turbolinks有关。 将remote: true添加到您的app / views / devise / sessions / new.html.erb form_for

  <%= form_for(resource, as: resource_name, url: session_path(resource_name), html: {class:"form-signin"}, remote: true) do |f| %>

为我解决了。