Разработка игнорирует мою пользовательскую стратегию

Я хочу создать пользовательскую стратегию аутентификации для доступа к API. Я следовал примеру кода в Devise, игнорируя пользовательскую стратегию .

Проблема в том, что действительный? метод в моей стратегии API никогда не запускается (из-за попытки взломать его ).

Мой код:

module Devise
  module Strategies
    class Api < Devise::Strategies::Base
      def valid?
        binding.pry
        params[:request_source] == 'api'
      end

      def authenticate!
        #do stuff here

        if user
          success!(user)
        else
          warden.custom_failure!
          render :json=> {:success=>false, :message=>"Error with your login or password"}, :status=>401
        end
      end
    end

    Warden::Strategies.add(:api, Devise::Strategies::Api)

  end
end

и в инициализаторе устройства:

config.warden do |manager|
  manager.default_strategies.unshift :api
end

Что бы я ни делал, Devise всегда использует стратегию по умолчанию. На мой взгляд, этого должно быть достаточно...

-------РЕДАКТИРОВАТЬ--------

Мне нужна такая стратегия в самом верху моего инициализатора разработки:

require Rails.root.join('app/devise/strategies/api')

Я знаю, что стратегия загружается во время загрузки, так как если я поставлю вызов pry внутри класса, он запустит сеанс pry. Но вызовы Pry внутри методов никогда не запускаются. :-С

6
задан Community 23 May 2017 в 12:27
поделиться