Ответ 1
ОБНОВЛЕНИЕ - июнь 2011 г.. Недавно я использовал omniauth gem, и я думаю, что это лучшее решение чем использование драгоценных камней, предложенных в этом ответе. Он хорошо работает с Devise и даст вам все необходимое в одном драгоценном камне. Я создал движок, который объединяет Devise и Omniauth и добавляет контроллер для обработки обратных вызовов. У меня есть немало изменений, запланированных для драгоценного камня, и сейчас я не считаю его стабильным плагином, но вы можете повторно использовать некоторый код в камне: https://github.com/charlotte-ruby/devise_omniauth_engine/blob/master/app/controllers/users/omniauth_callbacks_controller.rb
Недавно я работал над Rails 3 (с некоторыми проблемами с использованием OpenID). У меня нет полного рабочего примера, на котором вы можете посмотреть на github, но вот что я использую... все из которых имеют примеры в файлах readme.
Facebook - fbgraph. В отличие от Facebooker, он использует последний API Facebook. И источник очень легко понять, если вы хотите взглянуть на внутреннюю работу. Посмотрите пример аутентификации в readme. Мертвый просто.
Twitter - twitter_oauth Снова проверьте пример проверки подлинности readme. Это было довольно легко настроить тоже.
OpenID - rails/open_id_authentication использует драгоценный камень ruby-openid, но это само репо не является самоцветом, поэтому вам придется отбросить код в ваше приложение или поместить в свой каталог плагинов. Взгляните на их пример в readme, а также внимательно изучите источник, чтобы понять, что происходит (его всего лишь 130 строк кода). Я немного изменил его, чтобы заставить его работать с моим плагином для аутентификации, но у меня возникли проблемы с тем, что он одновременно работает как с простой регистрацией, так и с атрибутом Exchange... но вы могли бы заставить его работать вне зависимости от того, подходит ли пример rdoc для вашего приложения.
Сообщите мне, если у вас есть какие-то конкретные вопросы по этим вопросам. Я столкнулся с несколькими проблемами, которые мне удалось решить со всеми 3, когда я настраивал это.