Warden vs Rack :: Auth :: Basic.Выполнение HTTP-Basic-Auth в Ruby-Framework - PullRequest
3 голосов
/ 28 августа 2010

Я хочу создать WebService в Ruby (Синатра, Падрино, может быть, Ramaze ... пока не знаю ...), но я определенно хочу его обезопасить ...

Это будетбэкэнд для Iphone-App, так что я думаю, что SSL-Secure-HTTP-Basic-Auth будет в порядке.

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

Но ... мне показалось немного излишним, для того, что мне нужно ...

Тогда я нашел этот фрагмент кода:

  def protected!
    unless authorized?
      response['WWW-Authenticate'] = %(Basic realm="Testing HTTP Auth")
      throw(:halt, [401, "Not authorized\n"])
    end
  end

  def authorized?
    @auth ||=  Rack::Auth::Basic::Request.new(request.env)
    @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'admin']
  end

Похоже, мне просто не нужно больше этого атма ... Или кто-нибудь из вас, ребята, может привести хороший пример Warden +HTTP-Basic Auth?Или объясните мне больше преимуществ использования надзирателя?

Заранее спасибо !!!:)

1 Ответ

5 голосов
/ 28 февраля 2011

Не совсем уверен, что вы пытаетесь достичь здесь.Однако у нас есть приложение Rails, в котором мы используем Warden (+ devise) в сочетании с HTTP-Basic-Auth, используя промежуточное ПО для скрытия нашего промежуточного экземпляра.Это то, что мы помещаем в config / environment / staging.rb:

  config.middleware.insert_after(::Rack::Lock, "::Rack::Auth::Basic", "Not for public eyes") do |u, p|
u == 'admin' && p == 'secret'
  end

Это работает бок о бок с нашими правилами аутентификации Warden.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...