2012-01-05 2 views
2

나는 기본 setup.i.e와 함께 내 레일 3.0.9 앱에서 활성 관리자를 사용하고 있습니다. User 고객 로그인을위한 기기 인증을 사용하고 Active Admin은 AdminUser 모델에서 실행됩니다. 모든 관리자는 활성 관리자 로그인 페이지와 떨어져 있습니다. http://localhost:3000/admin에 액세스하려고하면 활성 관리 로그인 페이지가 매우 빨리 나타납니다. 그러나 사용자 이름/비밀번호를 올바르게 입력했거나 잘못 입력하면 인증 프로세스가 거의 3-5 분 정도 걸립니다. 이런 이유로 나는 heroku에 앱을 배포 할 수 없으며 heroku 로그에 시간 초과 오류가 발생합니다.능동적 인 관리자 로그인 느림

그러나 활성 관리자에 로그인 한 후 개발 모드에서 모든 것이 완벽하게 작동합니다. 이 문제가 라우팅 문제로 인해 발생하고 있다고 가정합니다. 그래서 여기에 내 노선 파일을 완전히 붙여 넣습니다.

http://pastie.org/3153643

은 어떤 사람이 나를 좀 도와 드릴까요? 감사합니다

업데이트 09 월 1 일 : 그 문제는 내가 생각하는 경로와 관련이없는 것처럼 보입니다. UserAdminUser 만 남기고 다른 모든 모델/컨트롤러 /보기/경로를 제거했습니다. 그러나 나는 아직도 느린 것을 경험하고있다.

답변

3

걱정하지 마시고 해결책을 찾은 것 같습니다. 나는 그것을 여기에 올리므로 비슷한 문제를 가진 다른 누군가를 도울 것입니다.

내 응용 프로그램에서는 원래 인증을 위해 authlogic 보석을 사용했지만 최근에는 더 나은 지원을 위해 devise으로 전환했습니다. 하지만 여전히 오래된 사용자가 동일한 비밀번호로 앱에 로그인 할 수있게하고 싶었습니다. 그래서 Bcrypt에서 Authlogic의 sha512에 이르기까지 아래와 같이 암호화 알고리즘을 오버라이드했습니다.

설정/초기화/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 

그리고 관리 사용자 마이그레이션 파일에 암호화 가능한 열을 사용하도록 설정해야합니다

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