我正在使用 doorkeeper gem 来使用令牌来验证请求。
当我按照如下定义配置了 doorkeeper_for 时,需要令牌,这是好的和预期的:
doorkeeper_for :all
当我将 doorkeeper_for 的条件设置为我真正想要的条件时(允许对本地部署端点的请求没有令牌)
doorkeeper_for :all, :unless => lambda { request.url =~ /http:\/\/(localhost|127.0.0.1|0.0.0.0):8080/
或者,如果我将此条件设置为任意数量的垃圾条件:
doorkeeper_for :all, :if => lambda { true }
doorkeeper_for :all, :unless => lambda { true }
然后看门人允许所有请求在没有令牌的情况下通过,这是不好的并且不是预期的。
注意到我有一个require 'doorkeeper'
声明,并且我在我的 API 控制器中摆弄了各种包含语句,例如include Doorkeeper::Helpers::Filter
这可能与 Doorkeeper 与 Grape 一起工作的问题有关,但再次奇怪的是,它在没有条件的情况下也能正常工作。任何有关为什么会发生这种情况的见解将不胜感激!