ruby-on-rails - Warden vs Rack::Auth::Basic。在 Ruby-Framework 中执行 HTTP-Basic-Auth

标签 ruby-on-rails authentication rest

我想用 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/

相关文章:

java - Rest 身份验证 - 使用数据库查找进行 token 验证与替代方案

ruby-on-rails - ruby on Rails 比较两个日期

ruby-on-rails - Rails 简单常量和选择选项

java - AuthenticationMechanism 使用 JSON 而不是 HTML 返回 401 的有效负载

java - RESTeasy/JAXB 的 JSON 解析错误

api - 成功登录时应将访问 token 放在哪里?

ruby-on-rails - "Your Ruby version is 1.9.3, but your Gemfile specified 1.9.3-p194"

mysql - 条件唯一性约束 Ruby on Rails

php - 使用 Zend Framework 登录后如何更新 guest 用户的购物车

ruby - Rack::Auth::Basic 销毁 session (注销)