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
Другое:
Ответ 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. Обязательно следуйте инструкциям, поскольку есть много вещей, которые нужно настроить.