Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configuring ActiveResource to support OAuth2

I need to be able configure ActiveResource to connect with OAuth2 or basic authentication on a connection by connection basis. I have found a couple ways to configure ActiveResource with OAuth2, but they don't seem that elegant and don't lend themselves to a dynamic type configuration. Any help out there?

like image 520
Tom Rossi Avatar asked Mar 11 '12 15:03

Tom Rossi


1 Answers

I figured out how to do this by having my ActiveResource classes inherit from an intermediate class:

  class Resource < ActiveResource::Base
  end

  class MyClass < Resource
  end

This allows you to dynamically set the authentication (as well as site, format, etc) for all classes that inherit from the intermediate Resource class:

if the user has OAuth2 configured:

   Resource.headers['authorization'] = 'Bearer ' + my_oauth2_token

or if the user is just using basic authentication:

   Resource.user = my_user_name
   Resource.password = my_password

Hope this helps someone!

like image 70
Tom Rossi Avatar answered Oct 22 '22 11:10

Tom Rossi