API'ye erişmek için özel bir yetkilendirme stratejisi oluşturmak istiyorum. Örnek kodu Devise ignoring custom strategy numaralı telefondan takip ettim.Devise özel stratejimi görmezden gel
Sorun şu ki geçerli mi? Api stratejimdeki yöntem asla çalışmaz (buna göz atmaya dayanarak).
Kodum:
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
ve vasiyetle in başlatıcısı:
yapmam şimdiye Neconfig.warden do |manager|
manager.default_strategies.unshift :api
end
, Devise her zaman varsayılan stratejiyi kullanır gibi görünüyor. AFAIK, bu
... yeterli olacaktır ------- DÜZENLEME -------- benim vasiyetle başlatıcısı en üst kısmında böyle bir strateji gerektirir
:
Sınıfın içinde bir gözetleme çağrısı koyduğumda, bir önyükleme oturumu başlatacağından, stratejinin açılışta yükleneceğini biliyorum. Ama Pry çağırır yöntemlerin içinde asla koşmaz. : -S
Bu satırın başlangıç düzenleyicisinin üst kısmında var: Rails.root.join gerektirir ('app/devise/stratejiler/api ') ve stratejinin içinde bir gözetleme çağrısı eklerseniz, raylar uygulaması başladığında yüklenir. ANCAK geçerli olan tüm gözetleme çağrıları? yöntem asla çağrılmaz. – Alain