Ruby OAuth GEM
What
This is a RubyGem for implementing both OAuth clients and servers in Ruby applications.
See the OAuth specs oauth.net/core/1.0/
Installing
sudo gem install oauth
You can also install it from the oauth rubyforge project rubyforge.org/projects/oauth/.
The source code is now hosted on the OAuth GitHub Project github.com/mojodna/oauth
The basics
This is a ruby library which is intended to be used in creating Ruby Consumer and Service Provider applications. It is NOT a Rails plugin, but could easily be used for the foundation for such a Rails plugin.
As a matter of fact it has been pulled out from an OAuth Rails Plugin code.google.com/p/oauth-plugin/ which now requires this GEM.
Demonstration of usage
Create a new consumer instance by passing it a configuration hash:
@consumer = OAuth::Consumer.new("key","secret", :site => "https://agree2")
Start the process by requesting a token
@request_token = @consumer.get_request_token
session[:request_token] = @request_token
redirect_to @request_token.
When user returns create an access_token
@access_token = @request_token.get_access_token
@photos = @access_token.get('/photos.xml')
For more detailed instructions I have written this OAuth Client Tutorial stakeventures.com/articles/2008/02/23/developing-oauth-clients-in-ruby and “How to turn your rails site into an OAuth Provider ”:stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider .
Finally be sure to check out the OAuth RDoc Manual oauth.rubyforge.org/rdoc/ .
Documentation Wiki
There is some documentation on the Google Code project for the “OAuth Rails Plugin”:code.google.com/p/oauth-plugin/ :
-
RequestToken code.google.com/p/oauth-plugin/wiki/RequestToken
-
AccessToken code.google.com/p/oauth-plugin/wiki/AccessToken
Forum
groups.google.com/group/oauth-ruby
How to submit patches
Read the “8 steps for fixing other people’s code” drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/.
The source code is now hosted on the OAuth GitHub Project github.com/mojodna/oauth
To submit a patch, please fork the oauth project and create a patch with tests. Once you’re happy with it send a pull request and post a message to the google group.
License
This code is free to use under the terms of the MIT license.
Contact
Comments are welcome. Send an email to “Pelle Braendgaard” [email protected] email via the OAuth Ruby mailing list groups.google.com/group/oauth-ruby
Diffs in this fork
This fork is pretty much kept in track with the great work of Pelle and Mojodna. The only real difference is that when signing requests it includes any opensocial_* headers as well as the oauth_* ones otherwise it wouldn’t work with our Google gadget.