Подтвердить что ты не робот

Аутентификация Rails 3 с помощью OpenID, Twitter или Facebook

Можете ли вы предложить какой-нибудь рабочий пример? Я пробовал Authlogic и разрабатывал с большим успехом.

4b9b3361

Ответ 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, когда я настраивал это.

Ответ 2

Я потратил около недели, пытаясь (безуспешно) получить работу open_id_authentication. Я пытался использовать Authlogic и все связанные с ним драгоценные камни и плагины. Я не мог заставить все работать так, как я хотел. (Аутентификация будет работать только с маршрутом: action (/: id), но когда это было разрешено, мои другие контроллеры не будут работать, потому что что-то в плагине лишило хэши params - очень расстраивает).

Однако, наконец, я смог получить OpenID, используя Devise (http://github.com/plataformatec/devise) и devise_openid_authenticatable (http://github.com/nbudin/devise_openid_authenticatable). Я смог следить за чтением на обеих страницах, чтобы все работало так, как я этого хотел. Просто. Прямо вперед. И совместимость с Rails 3.0.

Ответ 3

Разработчик построен на Warden, что является правильным термином google. Поиск 'warden openid', 'warden oauth' (twitter) и http://github.com/britt/facebook-warden-strategy для facebook

Ответ 4

Если вы собираетесь использовать Facebooker 2, вам придется обновить фреймворк Rails до 3.0. Игры Ayeah только что прошли процесс для игры FanSwarm (на Facebook). Это непростая задача, но сообщение в блоге может дать вам некоторое представление.

http://www.ayeahgames.com/blog/bid/55099/The-Horror-Upgrading-to-Rails-3

Ответ 6

Самый простой способ, которым я нашел это, - использовать RPX NOW.

Вы можете найти полный рабочий пример использования Rails3 и RPX NOW gem в github.