Quiero crear una estrategia de autenticación personalizada para acceder a la API. Seguí el código de ejemplo en Devise ignoring custom strategy.Diseñar ignorar mi estrategia personalizada
El problema es que el válido? método en mi estrategia Api nunca se ejecuta (basado en tratar de hacer palanca en él).
Mi código:
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
y en el inicializador legado:
config.warden do |manager|
manager.default_strategies.unshift :api
end
Lo que alguna vez lo hago, parece que Idear utilice siempre su estrategia predeterminada. Que yo sepa, esto debería ser suficiente ...
------- -------- EDITAR
requiero la estrategia como esta en la parte superior de mi inicializador legado:
require Rails.root.join('app/devise/strategies/api')
Sé que la estrategia se carga en el momento del arranque, ya que si pongo una llamada de palanca dentro de la clase, se iniciará una sesión de palanca. Pero las llamadas Pry dentro de los métodos nunca se ejecutan. : -S
Tengo esta línea en la parte superior del inicializador del dispositivo: requiere Rails.root.join ('app/idear/estrategias/api ') y si agrego una llamada de palanca dentro de la estrategia, se carga cuando se inicia la aplicación de rieles. PERO todas las llamadas de palanca que tengo dentro de la válida? método nunca se llama. – Alain