Я использую гем привратника для использования токенов для аутентификации запросов.
Когда у меня 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
Возможно, это связано с проблемой работы привратника с Grape, хотя опять же странно, что он прекрасно работает без условного оператора. Любое понимание того, почему это происходит, будет оценено!