def authenticate!(*args)
      user, opts = _perform_authentication(*args)
      throw(:warden, opts) unless user
      user
    end
def authenticate!(*args)
      user, opts = _perform_authentication(*args)
      throw(:warden, opts) unless user
      user
    end
The same as +authenticate+ except on failure it will throw an :warden symbol causing the request to be halted
 and rendered through the +failure_app+

 Example
   env['warden'].authenticate!(:password, :scope => :publisher) # throws if it cannot authenticate

 :api: public