Warden vs Rack :: Auth :: Basic.在Ruby-Framework中进行HTTP-Basic-Auth

cru*_*rvx 3 authentication rest ruby-on-rails

我想用Ruby创建一个WebService(Sinatra,Padrino,也许是Ramaze ......还不知道......),但我绝对想要保护它......

它将成为Iphone-App的后端,所以我认为SSL-Secured HTTP-Basic-Auth会很好.

我一直在寻找几个身份验证框架,并遇到了监狱长...似乎有很好的记录,设计是建立在它之上......所以不能那么糟糕......

但是......对我来说似乎有点矫枉过正,因为我需要......

然后我发现了这个Code-Snipplet:

  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
Run Code Online (Sandbox Code Playgroud)

看起来我只是不需要超过那个...或者你们中的任何人能提供一个很好的Warden + HTTP-Basic Auth示例吗?或者向我解释使用监狱长的更多好处?

提前致谢!!!:)

Jer*_*ijk 5

不完全确定你想要在这里实现的目标.但是我们有一个Rails应用程序,我们使用Warden(+ devise)结合HTTP-Basic-Auth使用中间件来隐藏我们的暂存实例.这是我们在config/environments/staging.rb中添加的内容:

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

这与我们的Warden身份验证规则并行工作.