Why don't you enable both schemes for a single controller? Especially if the only difference is Authentication. You could have two app/controllers/concerns to encapsulate both authentication methods and include Auth1 and include Auth2 for a single controller who is only responsible for whatever resource it manages.
Otherwise, services are the best approach to encapsulate controller logic.
Create a folder called services in your app folder and write PORO classes here. Say you have a few places in your app where you want to pay for stuff via make Stripe.
# app/services/stripe_service.rb
module StripeService
  def customer(args)
    ...
  end
  def pay(amount, customer)
    ...
  end
  def reverse(stripe_txn_id)
    ...
  end
end
# controller
StripeService.customer(data)
=> <#Stripe::Customer>
Or if you only need to do one thing.
# app/services/some_thing.rb
module SomeThing
  def call
    # do stuff
  end
end
# controller
SomeThing.call
=> # w/e
If you need an object with multiple reponsibilities you could create a class instead.
class ReportingService
  def initialize(args)
    ...
  end
  def query
    ...
  end
  def data
    ...
  end
  def to_json
    ...
  end
end
https://blog.engineyard.com/2014/keeping-your-rails-controllers-dry-with-services