разработка http basic auth для формата html

#ruby-on-rails #devise #basic-authentication

#ruby-on-rails #разработка #базовая аутентификация

Вопрос:

У меня следующая конфигурация:

разработка:database_authenticatable config.http_authenticatable = true

по запросу:

http://user:password@localhost:3000/

Devise игнорирует http auth login и перенаправляет на страницу входа

есть мысли?

С уважением

Ответ №1:

Что дает вам http_authenticatable, так это возможность использовать ваши учетные данные для аутентификации HTTP Basic для входа в собственную систему аутентификации. Вам все еще нужно самостоятельно закодировать блок http_auth, вот так:

 def authenticate
  authenticate_or_request_with_http_basic do |username, password|
    username == "foo" amp;amp; password == "bar"
  end
  warden.custom_failure! if performed?
end
  

Этот код должен войти в ваш контроллер приложений. Убедитесь, что вы используете warden.custom_failure!, иначе разработка войдет в бесконечный цикл перенаправлений.

Ответ №2:

Это сработало для меня

   before_filter :check_auth

  def check_auth
    authenticate_or_request_with_http_basic do |username,password|
      resource = User.find(username)
      if resource.valid_password?(password)
        sign_in :user, resource
      end
    end
    warden.custom_failure! if performed?
  end
  

Комментарии:

1. Вместо этого мне пришлось использовать User.find_by email: username , и это сработало, спасибо!