API에 액세스하기위한 맞춤 인증 전략을 만들고 싶습니다. 나는 Devise ignoring custom strategy에 예제 코드를 따라 갔다.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
, 고안 항상 기본 전략을 사용할 것 같다. AFAIK,이
... 충분해야한다 ------- 편집 -------- 내 유증 이니셜의 맨 위에이 같은 전략이 필요
:
require Rails.root.join('app/devise/strategies/api')
나는 클래스 내에 호출을 넣으면 전략이 부팅 될 때로드된다는 것을 알고 있습니다. 그러면 클래스가 시작됩니다. 그러나 Pry 호출은 결코 실행되지 않습니다. : -S
나는이 줄을 장치 초기화 프로그램의 맨 위에두고 있습니다 : require Rails.root.join ('app/devise/전략/api ') 전략에 내부 호출을 추가하면 레일 응용 프로그램이 시작될 때로드됩니다. 하지만 내가 가지고있는 전화는 모두 유효합니까? 메서드가 호출되지 않습니다. – Alain