ОБНОВЛЕНИЕ - июнь 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 строк кода). Я немного изменил его, чтобы он работал с моим подключаемым модулем аутентификации, но я столкнулся с некоторыми проблемами, заставив его работать одновременно с простой регистрацией и обменом атрибутами ... но вы могли бы заставить его работать из коробки, если пример rdoc подходит для вашего приложения.
Дайте мне знать, если у вас есть какие-то конкретные вопросы по этим вопросам. Я столкнулся с несколькими проблемами, которые мне удалось решить со всеми 3, когда я настраивал это.