devise - 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
我不确定还包括什么,我还在学习。
谢谢你
解决方案
我刚刚回到我的 git 存储库到最后一个已知的工作版本并重置到那里。不知道问题是什么,但我的应用程序再次运行。
推荐阅读
- sapui5 - 如何通过代码跳转到移动设备上的另一个拆分窗格?
- elasticsearch - 在弹性搜索中更新嵌套对象
- java - 带有 Spock 的 PowerMockito:无法从 java.util.concurrent 模拟类
- loadrunner - 如何在负载测试期间提取 Performance Center 运行 ID?
- visual-studio-2017 - 当 GenerateAssemblyInfo 为 False
- c# - 使用 LINQ 从 SQL 存储过程返回单个值
- hibernate - Jpa 存储库和 JsonIgnoreProperties 在 getOne() 和 findAll() 方法中以不同方式返回相同的对象
- azure - Azure 存储客户端日志记录和 .NET Core 控制台应用程序
- javascript - $ 选择动态类
- java - Java Webstart - 将服务器 IP 放入 jnlp 文件中