3

我设置了一个摘要身份验证,就像 sinatrarb 网站上的示例一样。

#config.ru
require './main'

app = Rack::Auth::Digest::MD5.new(Sinatra::Application) do |username|
  {'foo' => 'bar'}[username]
end
app.realm = 'Protected Area'
app.opaque = 'secretkey'

run app

我想知道是否有人知道如何或可以将我指向一个指南。谢谢。

4

1 回答 1

4

Sinatra FAQ有一个使用 Test::Unit 和 Basic Auth 的示例。我从未将 RSpec 与 Sinatra 一起使用,但从 Test::Unit 转换示例应该很容易。

即使该示例使用 Basic Auth,Digest Auth 也可以以相同的方式进行测试。唯一的区别是您需要使用 Rack::Test 的digest_authorize方法。例如,FAQ 中的最后一个测试会变成这样:

def test_with_proper_credentials
  digest_authorize 'admin', 'admin'
  get '/protected'
  assert_equal 200, last_response.status
  assert_equal "You're welcome", last_response.body
end
于 2012-07-27T02:48:38.903 回答