Active Admin Логин медленный - PullRequest
       7

Active Admin Логин медленный

2 голосов
/ 05 января 2012

Я использую активного администратора в своем приложении rails 3.0.9 с настройкой по умолчанию. То есть у меня есть модель User с аутентификацией devise для входа в систему, а Active Admin работает на модели AdminUser.Все в порядке, кроме активной страницы входа администратора.Когда я пытаюсь получить доступ к http://localhost:3000/admin, я очень быстро получаю страницу входа активного администратора.Но после того, как я правильно / неправильно ввел имя пользователя / пароль, процесс аутентификации занимает около 3-5 минут.По этой причине я даже не могу развернуть приложение на heroku, и я получаю ошибки тайм-аута в логах heroku.

Но, однако, в режиме разработки после входа в систему с активным администратором все работает отлично.Я предполагаю, что это происходит из-за проблемы с маршрутизацией.Таким образом, я полностью вставляю свой файл маршрутов здесь.

http://pastie.org/3153643

Может кто-нибудь помочь мне в этом, пожалуйста?Спасибо

ОБНОВЛЕНИЕ 09-Янв: Кажется, проблема не связана с маршрутами, я думаю.Я удалил все другие модели / контроллеры / представления / маршруты, оставив только User и AdminUser материалы.Но я все еще испытываю медлительность.

1 Ответ

3 голосов
/ 09 января 2012

Не берите в голову, что я нашел проблему и вероятно решение также. Я выкладываю это здесь, так что это поможет кому-то еще с подобной проблемой.

В моем приложении я первоначально использовал authlogic gem для аутентификации, но недавно я переключил его на devise для лучшей поддержки. Но я все еще хотел позволить старым пользователям входить в приложение с теми же паролями. Поэтому я переопределил шифрование устройства от Bcrypt до sha512 Authlogic, как показано ниже.

конфиг / Инициализаторы / devise.rb

config.encryptor = :authlogic_sha512

Но я никогда не изменяю модель AdminUser, чтобы соответствовать вышеуказанным изменениям.

Так что исправление должно быть в моей модели, я должен использовать :encryptable и :encryptor => :authlogic_sha512

class AdminUser < ActiveRecord::Base

  devise :database_authenticatable, 
         :recoverable, :rememberable, :trackable, :validatable,:encryptable, `:encryptor => :authlogic_sha512`

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

А в файле миграции AdminUser должны быть включены шифруемые столбцы

create_table(:admin_users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable

      t.encryptable
      # t.confirmable
      # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
      # t.token_authenticatable


      t.timestamps
    end
...