Based on SOAuth: http://github.com/tofumatt/SOAuth

A simple OAuth library that supports OAuth header signing, and header verifying.

gem install roauth

Example Client:

require "roauth"
require "nestful"

url = "https://twitter.com/direct_messages.json"

oauth = {
  :consumer_key    => "consumer_key",
  :consumer_secret => "consumer_secret",
  :access_key      => "access_key",
  :access_secret   => "access_secret"
}

params = {
  :count    => "11",
  :since_id => "5000"
}
oauth_header = ROAuth.header(oauth, url, params)

Nestful.get(url, :params => params, :headers => {'Authorization' => oauth_header})

Example Server:

oauth_header = ROAuth.parse(request.header['Authorization'])

# Implementation specific
consumer     = Consumer.find_by_key(oauth_header[:consumer_key])
access_token = AccessToken.find_by_token(oauth_header[:access_key])
oauth = {
  :consumer_secret => consumer.secret,
  :access_secret   => access_token.secret
}

ROAuth.verify(oauth, oauth_header, request.request_uri, params) #=> true/false