It's not too difficult to write your own controller code to connect to each of these services and redirect. For example, to authenticate to twitter using oauth takes two actions and about 20 lines of code total.
Keep the code for each service separate in it's own controller.
def twitter_oauth
o = Twitter::OAuth.new(your_twitter_consumer_token, your_twitter_consumer_secret, :authorize_path => '/oauth/authenticate', :sign_in => true)
o.set_callback_url(twitter_cb_url)
session[:twitter_oauth_request_token] = o.request_token.token
session[:twitter_oauth_request_secret] = o.request_token.secret
redirect_to o.request_token.authorize_url
end
def twitter_oauth_cb
o = Twitter::OAuth.new(your_twitter_consumer_token, your_twitter_consumer_secret, :authorize_path => '/oauth/authenticate', :sign_in => true)
if params[:denied]
redirect_to root_url
elsif params[:oauth_verifier]
o.authorize_from_request(session[:twitter_oauth_request_token],
session[:twitter_oauth_request_secret],
params[:oauth_verifier])
# look up this user in the db by o.access_token.token
# is the user not found? create them, save their token
# log them in - UserSession.create(user, true)
redirect_to root_url
end
end