OmniAuth работает из Rack Middleware, поэтому rescue_from не повлияет на него, потому что это уровень абстракции выше OmniAuth через ActionController.
Эта ошибка обычно возникает из-за неправильной настройки параметров OAuth. В основном это говорит о том, что ваше приложение не авторизовано для аутентификации, а не что аутентификация пользователя не удалась.
Ошибка конфигурации - это то, что вы, как разработчик, хотели бы устранить, поэтому я не уверен, почему вы захотите спасти исключение, подобное этому.
Если вам абсолютно необходимо спасти это исключение, вы можете переопределить и использовать промежуточное программное обеспечение, которое наследуется от OmniAuth
module OmniAuth
module Strategies
class FacebookWithExceptionHandling < OmniAuth::Strategies::Facebook
def call
begin
super
raise OmniAuth::Unauthorized => e
#handle appropriately in rack context here
end
end
end
end
end
Rails.application.config.middleware.use OmniAuth::Builder do
provider OmniAuth::Strategies::FacebookWithExceptionHandling,
api_key, #your api key
secret_key, #your secret key
end