OAuth (Twitter, Facebook, LinkedIn и т. Д.) В Rails - PullRequest
10 голосов
/ 28 июня 2010

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

Есть ли относительно простой способ интеграции этих API?

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

Ответы [ 4 ]

7 голосов
/ 13 марта 2011

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

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

Так как это промежуточное программное обеспечение Rack, его можно использовать с Devise и AuthLogic .Из-за его модульности, это должно быть легко использовать с приложениями Rails / Sinatra с чистым Restful-API (без прямого рендеринга 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
  • doit
  • dopplr
  • evernote
  • facebook
  • foursquare
  • github
  • goodreads
  • google
  • Говалла
  • Гайвс
  • идентика
  • Instagram
  • instapaper
  • connected_в
  • встреча
  • мисо
  • mixi
  • netflix
  • smug_mug
  • sound_cloud
  • 37Сигналы
  • trade_me
  • trip_it
  • twitter
  • type_pad
  • vimeo
  • xauth
  • yahoo
  • you_tube

OpenId:

  • Google App (интеграция с рынком)
  • Общий OpenID

HTTP Basic:

  • 37 Сигналы Campfire
  • 37 Сигналы Basecamp
  • Общий HTTP Basic auth

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

  • Центральная служба аутентификации (CAS)
  • LDAP

Другое:

  • Windows Live
  • Flickr
5 голосов
/ 03 января 2011

, если в вашем приложении есть существующая инфраструктура аутентификации пользователей или вы просто не используете 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 голосов
/ 28 июня 2010

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

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

3 голосов
/ 13 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...