2013-02-27 2 views
0

적절한 인증없이 끝점을 요청하려고 시도 할 때 401 오류 메시지를 반환하려고합니다.Devise JSON API가 리디렉션 때문에 401 대신에 406을 반환 함

이 HomeController에 의해 2013년 2월 27일 2시 40분 22초 0000 처리에 127.0.0.1은 "/api/v1/home/index.json을"GET 시작일 :

현재이 일어나고있는 것입니다

에선 0ms에서 무단 (401)을 완료 JSON 로 #INDEX은 새로운 SessionsController 번호로 2013년 2월 27일 2시 40분 22초 0000 처리에 127.0.0.1은 "/api/v1/sign_in.json을"GET 시작 JSON 완료 406 1ms 내에 허용되지 않음 (액티브 레코드 : 0.0ms)

어떻게 할 수 있습니까? 나는 sign_in에 나를 튕기는 대신에 401/json 응답을 되 돌린다.

저는 이것이 제가 시도한 CustomFailureApp와 관련이 있을지 모르지만,이 특정 시나리오에서 CustomFailureApp가 호출되고 있는지 확신하지 못합니다.

답변

1

맞춤형 오류 응용 프로그램을 만들 수 있습니다.

class JsonFailureApp < Devise::FailureApp 
    def respond 
    self.status = 401 
    self.content_type = 'json' 
    self.response_body = '{"error" : "Authentication error"}' 
    end 
end 

당신의 유증 이니셜이 추가

config.warden do |manager| 
    manager.failure_app = JsonFailureApp 
end