У меня есть эта проблема только локально в Chrome, а не в производстве. Это также не проблема в Safari или Firefox. Я не уверен, что вызвало проблему, так как мое единственное недавнее изменение - добавление Redis / Sidekiq для асинхронной обработки заданий, что, похоже, не актуально.
Я очистил свои куки в Chrome, но это все равно не помогло .
Проблема началась после того, как я сбросил локальную базу данных и загрузил мои начальные и примеры данных. Я использовал psql для просмотра данных в базе данных и могу подтвердить, что у меня есть правильные пользователи и администраторы, чтобы иметь возможность проходить аутентификацию через страницу входа Active Admin.
Когда я использую неверно Учетные данные я получаю соответствующий «Неверный адрес электронной почты или пароль». сообщение в Active Admin, которое ожидается, и я вижу ожидаемый вывод в терминале: «Completed 401 Unauthorized» et c.
Когда я использую правильные учетные данные, у меня проблема. Я перенаправлен обратно на ту же страницу (похоже, страница просто обновляется).
В терминале я вижу 302 и перенаправление на страницу администратора, где я не аутентифицирован (не знаю почему), что заставляет меня перенаправить обратно на страницу входа.
Терминальный вывод для неудачной попытки входа в систему в Chrome:
Incoming Headers:
Origin: http://localhost:3000
Path-Info: /admin/login
Access-Control-Request-Method:
Access-Control-Request-Headers:
Started POST "/admin/login" for ::1 at 2020-03-14 01:15:49 -0500
Processing by ActiveAdmin::Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Qirj5VE07/Xv2c3vrwNzmNH3pIfrd615p+OnaXV8cSWVeeIaEBIWRAK8tsquti5KgqmJv/sgmGD84VQCxkmKdg==", "admin_user"=>{"email"=>"mishaherscu@gmail.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Login"}
AdminUser Load (0.2ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = $1 ORDER BY "admin_users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]]
AdminUser Load (0.3ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."email" = $1 ORDER BY "admin_users"."id" ASC LIMIT $2 [["email", "mishaherscu@gmail.com"], ["LIMIT", 1]]
Redirected to http://localhost:3000/admin
Completed 302 Found in 121ms (ActiveRecord: 0.5ms | Allocations: 3418)
::1 - - [14/Mar/2020:01:15:49 CDT] "POST /admin/login HTTP/1.1" 302 93
http://localhost:3000/admin/login -> /admin/login
Started GET "/admin" for ::1 at 2020-03-14 01:15:49 -0500
Processing by Admin::DashboardController#index as HTML
AdminUser Load (0.2ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = $1 ORDER BY "admin_users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]]
Completed 401 Unauthorized in 2ms (ActiveRecord: 0.2ms | Allocations: 611)
::1 - - [14/Mar/2020:01:15:49 CDT] "GET /admin HTTP/1.1" 302 99
http://localhost:3000/admin/login -> /admin
Started GET "/admin/login" for ::1 at 2020-03-14 01:15:49 -0500
Processing by ActiveAdmin::Devise::SessionsController#new as HTML
AdminUser Load (0.7ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = $1 ORDER BY "admin_users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]]
Rendering /Users/mishaherscu/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/activeadmin-2.6.1/app/views/active_admin/devise/sessions/new.html.erb within layouts/active_admin_logged_out
Rendered /Users/mishaherscu/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/activeadmin-2.6.1/app/views/active_admin/devise/shared/_links.erb (Duration: 0.2ms | Allocations: 93)
Rendered /Users/mishaherscu/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/activeadmin-2.6.1/app/views/active_admin/devise/sessions/new.html.erb within layouts/active_admin_logged_out (Duration: 7.5ms | Allocations: 6691)
Completed 200 OK in 34ms (Views: 31.0ms | ActiveRecord: 0.7ms | Allocations: 30877)
Терминальный вывод для успешной попытки входа в систему в Safari:
Incoming Headers:
Origin: http://localhost:3000
Path-Info: /admin/login
Access-Control-Request-Method:
Access-Control-Request-Headers:
Started POST "/admin/login" for ::1 at 2020-03-14 14:05:32 -0500
Processing by ActiveAdmin::Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Zr9FK5J4+tc+/a/RY4ir84YWi/MkIfnTRzAj3sg5yrqb7o8yuIggXu+mT273TN1xzNCFH9EYP2DVYZMte2JUEw==", "admin_user"=>{"email"=>"mishaherscu@gmail.com", "password"=>"[FILTERED]", "remember_me"=>"1"}, "commit"=>"Login"}
AdminUser Load (0.2ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."email" = $1 ORDER BY "admin_users"."id" ASC LIMIT $2 [["email", "mishaherscu@gmail.com"], ["LIMIT", 1]]
(0.2ms) BEGIN
AdminUser Update (0.2ms) UPDATE "admin_users" SET "remember_created_at" = $1, "updated_at" = $2 WHERE "admin_users"."id" = $3 [["remember_created_at", "2020-03-14 19:05:32.213581"], ["updated_at", "2020-03-14 19:05:32.213742"], ["id", 1]]
(0.9ms) COMMIT
Redirected to http://localhost:3000/admin
Completed 302 Found in 101ms (ActiveRecord: 1.4ms | Allocations: 1308)
::1 - - [14/Mar/2020:14:05:32 CDT] "POST /admin/login HTTP/1.1" 302 93
http://localhost:3000/admin/login -> /admin/login
Incoming Headers:
Origin: http://localhost:3000
Path-Info: /admin
Access-Control-Request-Method:
Access-Control-Request-Headers:
Started GET "/admin" for ::1 at 2020-03-14 14:05:32 -0500
Processing by Admin::DashboardController#index as HTML
AdminUser Load (0.1ms) SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = $1 ORDER BY "admin_users"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]]
Rendering /Users/mishaherscu/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/activeadmin-2.6.1/app/views/active_admin/page/index.html.arb
Rendered /Users/mishaherscu/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/activeadmin-2.6.1/app/views/active_admin/page/index.html.arb (Duration: 25.0ms | Allocations: 32977)
Completed 200 OK in 26ms (Views: 25.4ms | ActiveRecord: 0.1ms | Allocations: 33501)
::1 - - [14/Mar/2020:14:05:32 CDT] "GET /admin HTTP/1.1" 200 5255
http://localhost:3000/admin/login -> /admin
From rout.rb:
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
У кого-нибудь есть идеи о том, что его вызывает и / или как это можно исправить? Также с удовольствием предоставлю дополнительную информацию, если чего-то не хватает.