首页 > 解决方案 > ActiveAdmin 错误 401 无法再使用有效凭据登录。使用导轨 5.2

问题描述

我创建了一个 ActiveAdmin 用户,但我无法再使用以前的任何 ActiveAdmin 用户登录,也无法创建新用户。当我尝试时,我收到 401 错误。我曾多次尝试操纵设计初始化程序和模型,但均无济于事。使用 rails 5.2.1、activeadmin 1.3.1、activeadmin_addons 1.6.0、cancancan 2.2.0 active_admin_role 0.2.1

ActiveAdmin::Devise::SessionsController#create as HTML 参数处理:{"utf8"=>"✓", "authenticity_token"=>"Xyn9lV8tJQE9+Kii+LjFwiwrR4VKOXF8oACcQK4ui8Nb/9jkqDY8hfCHKEpX4/ftO3aKtdb0KJ9RXTq1TIbhpw==", "admin_user"=>{ "login"=>"hodari@hiddengeniusproject.org", "password"=>"[FILTERED]", "remember_me"=>"1"}, "commit"=>"Submit"} AdminUser Load (1.1ms) SELECT "admin_users".* FROM "admin_users" WHERE (lower(email) = 'hodari@hiddengeniusproject.org') ORDER BY "admin_users"."id" ASC LIMIT $1 [["LIMIT", 1]] 完成 401 Unauthorized in 149ms (活动记录:1.9ms)

由 ActiveAdmin::Devise::SessionsController#new 处理为 HTML 参数:{"utf8"=>"✓",

"authenticity_token"=>"Xyn9lV8tJQE9+Kii+LjFwiwrR4VKOXF8oACcQK4ui8Nb/9jkqDY8hfCHKEp X4/ftO3aKtdb0KJ9RXTq1TIbhpw==", "admin_user"=>{"login"=>"", "password"=>" [FILTERED]", "remember_me"=> "1"}, "commit"=>"Submit"} 渲染 /Users/professortoure/.rvm/gems/ruby-2.4.1/gems/activeadmin- 1.3.1/app/views/active_admin/devise/sessions/new layouts/active_admin_logged_out 中的 .html.erb 渲染 /Users/professortoure/.rvm/gems/ruby-2.4.1/gems/activeadmin- 1.3.1/app/views/active_admin/devise/shared/_links.erb (1.6ms)在 layouts/active_admin_logged_out (51.6 毫秒)在 838 毫秒内完成 200 次 OK(查看次数:836.8 毫秒 | ActiveRecord:0.0 毫秒)

这是我的管理员用户模型

类 AdminUser < ApplicationRecord role_based_authorizable 设计 :database_authenticable, :recoverable, :rememberable, :trackable attr_accessor :login has_many :classrooms protected

   def self.find_for_database_authentication(warden_conditions)
     conditions = warden_conditions.dup
     login = conditions.delete(:login)
     where(conditions).where(["lower(email) = :value", { :value => login 
}]).first
   end
 end

这是我的 devise.rb

Devise.setup do |config|

config.secret_key = ENV['devise_secret_key'] if Rails.env.production?
config.mailer_sender = 'Devise Omniauth  
config.mailer = 'Devise::Mailer'
config.parent_mailer = 'ActionMailer::Base'

config.authentication_keys = [:login]
config.reset_password_keys = [:login]

config.strip_whitespace_keys = [:email, :username ]
config.params_authenticatable = true
config.http_authenticatable = false
config.paranoid = true
config.skip_session_storage = [:http_auth]
config.clean_up_csrf_token_on_authentication = true
config.reload_routes = true
config.stretches = Rails.env.test? ? 1 : 11

config.allow_unconfirmed_access_for = 364.days
config.confirm_within = 365.daysconfig.reconfirmable = true
config.expire_all_remember_me_on_sign_out = true
config.password_length = 6..128
config.email_regexp = /\A[^@\s]+@[^@\s]+\z/
config.unlock_strategy = :both
config.reset_password_within = 6.hours

Rails.application.config.app_middleware.use OmniAuth::Builder do
 config.omniauth :google_oauth2,
 Figaro.env.google_client_id,
 Figaro.env.google_client_secret
 #google_oauth2_options
  {
    scope: 'email, calendar',
    prompt: 'select_account',
    image_aspect_ratio: 'original',
    name: 'google',
    access_type: 'offline',
    provider_ignores_state: true
  } 
end
end

我不确定还包括什么,我还在学习。

谢谢你

标签: deviseruby-on-rails-5activeadmin

解决方案


我刚刚回到我的 git 存储库到最后一个已知的工作版本并重置到那里。不知道问题是什么,但我的应用程序再次运行。


推荐阅读