OAuth (Twitter, Facebook, LinkedIn и т.д.) На Rails

Я хотел бы подключиться к тем приложениям, которые предоставили API OAuth (например, fb, twitter).

Существует ли относительно простой способ интеграции этих API?

Я успешно использовал связанный жемчуг, который может подключаться к LinkedIn OAuth API. Но я действительно не хочу устанавливать драгоценный камень для работы с одним приложением, где эти приложения предоставляют аналогичные API OAuth.

Ответ 1

Ну, и fb, и твиттер - довольно пользовательские версии OAuth, поэтому я думаю, что вам понадобится драгоценный камень для каждого приложения. Но!

Authlogic предоставляет некоторые интересные плагины для open-id, twitter и facebook.

Ответ 2

С октября 2010 года у кого-то появился драгоценный камень под названием OmniAuth. Он объединяет несколько разных поставщиков идентификаторов в промежуточное ПО Rack. Он специально не обрабатывает авторизацию или настойчивость - это остается за вами. Это, вероятно, лучший вариант сейчас, особенно если вы не планируете использовать классическую аутентификацию имени пользователя и пароля (хотя OmniAuth может справиться с ней).

OmniAuth будет обрабатывать идентификацию из Facebook, Twitter, Google, LinkedIn, 37Signals и Github. См. Ниже полный список на эту публикацию.

Так как это промежуточное ПО Rack, это можно использовать с Devise и AuthLogic. Из-за своей модульности это должно быть легко использовать с помощью приложений pure-Restful-API Rails/Sinatra (без прямой HTML-рендеринга), которые общаются с мобильными приложениями, которые набирают популярность, не вытягивая дополнительный код из Devise и AuthLogic.

Лучший учебник для начала работы - это сообщение в блоге, написанное для Rails Rumble о том, как быстро и быстро запускать аутентификацию: http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauth

У Райана Бейтса также есть несколько Railscasts о OmniAuth:

Как и в случае с этой публикацией, это следующие поставщики, выходящие из коробки (на основе https://github.com/intridea/omniauth/tree/dc44c54d80ca0b49d1f63bbbf21165a7515fd41d)

OAuth/OAuth2:

  • Bitly
  • dailymile
  • пустяк
  • Dopplr
  • Evernote
  • facebook
  • четвероугольник
  • GitHub
  • Goodreads
  • Google
  • Gowalla
  • Hyves
  • Идентика
  • Instagram
  • Instapaper
  • linked_in
  • Meetup
  • мисо
  • Микси
  • Netflix
  • smug_mug
  • sound_cloud
  • 37 Сигналы
  • trade_me
  • trip_it
  • твиттер
  • type_pad
  • Vimeo
  • Xauth
  • Yahoo
  • you_tube

OpenId:

  • Приложение Google (интеграция на рынке)
  • Общий OpenID

HTTP Basic:

  • 37 Сигнальный костер
  • 37 Сигналы Basecamp
  • Generic HTTP Basic auth

Предприятие:

  • Служба централизованной аутентификации (CAS)
  • LDAP

Другое:

  • Windows Live
  • Flickr

Ответ 3

если в вашем приложении есть существующая инфраструктура аутентификации пользователей, или если вы просто не используете Authlogic (и не хотите использовать его), OmniAuth может помочь вам.

https://github.com/intridea/omniauth

Вот некоторые ресурсы, которые помогут вам начать:

http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauth

http://railscasts.com/episodes/235-omniauth-part-1

http://railscasts.com/episodes/236-omniauth-part-2

Ответ 4

AuthlogicConnect выглядит так, как будто он работает на многих сайтах (Twitter, Facebook, LinkedIn, MySpace, Google, Yahoo). В настоящее время я использую его с FB и Twitter на Rails 3. Обязательно следуйте инструкциям, поскольку есть много вещей, которые нужно настроить.