微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MailCatcher 中的基本身份验证Ruby、瘦服务器

如何解决MailCatcher 中的基本身份验证Ruby、瘦服务器

我被要求在 mailcatcher 服务器中实现基本身份验证,mailcatcher 是用 Ruby 编写的,所以我在谷歌上搜索了如何添加基本身份验证,我发现了这个: https://gist.github.com/yous/40d8e18b33dfb62966c3e1e343f11a96

Mailcatcher 也使用 Thin server,所以我复制了 use Rack::Auth::Basic 块,像这样:


      # Let Thin set itself up inside our EventMachine loop
      # (Skinny/WebSockets just works on the inside)
      rescue_port options[:http_port] do
        Thin::Server.start(options[:http_ip],options[:http_port],Web) do
          use Rack::Auth::Basic,'Protected Area' do |username,password|
            username == 'USERNAME' && password == 'PASSWORD'
          end
        end
        
        puts "==> #{http_url}"
      end

但是当我尝试在终端中运行 mailcatcher 时,出现此错误

/home/.../.rvm/gems/ruby-2.6.3/gems/rack-1.6.13/lib/rack/builder.rb:146:in `to_app': missing run or map statement (RuntimeError)

这发生在 Rack 的 builder.rb 文件中,在这方法中:

    def to_app
      app = @map ? generate_map(@run,@map) : @run
      fail "missing run or map statement" unless app
      app = @use.reverse.inject(app) { |a,e| e[a] }
      @warmup.call(app) if @warmup
      app
    end

所以似乎没有@map 或@run,如果我理解正确的话,这些是实例变量。在使用 Rack::Auth::Basic 之前,有没有办法设置它们?

这是我第一次查看 ruby​​ 代码,所以也许我只是缺乏一些可以帮助我进行设置的基本概念,所以我很感激任何帮助 :)

非常感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。