我想用 Ruby(Sinatra、Padrino,也许还有 Ramaze……还不知道……)创建一个 WebService,但我绝对想保护它……
它将成为 Iphone 应用程序的后端,所以我认为 SSL-Secured HTTP-Basic-Auth 会很好。
我一直在查看几个身份验证框架并遇到了 warden... 似乎有很好的记录,设计是建立在它之上的……所以不会那么糟糕……
但是...在我看来有点矫枉过正,因为我需要...
然后我找到了这个代码片段:
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 示例吗?或者向我解释使用 warden 的更多好处?
提前致谢!!! :)
最佳答案
不完全确定您要在此处实现的目标。然而,我们有一个 Rails 应用程序,我们使用 Warden(+ 设计)结合使用中间件的 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
这与我们的 Warden 身份验证规则并存。
关于ruby-on-rails - Warden vs Rack::Auth::Basic。在 Ruby-Framework 中执行 HTTP-Basic-Auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3588951/