Успешная аутентификация + подключение к Facebook - Редизайн модели пользователя - PullRequest
0 голосов
/ 16 апреля 2010

У меня есть сайт с Restful-аутентификацией в качестве плагина аутентификации. Мне нужно интегрировать Facebook Connect. Facebook не предоставляет адрес электронной почты для пользователя (возможно, только если пользователь согласен, если), и, конечно, не предоставляет пароль.

Основная проблема заключается в том, что модель User имеет много validates_** в этих 2 полях (из модулей проверки подлинности Restful). Другая небольшая проблема заключается в том, что у нас уже есть много кода (наблюдатели отправляют электронные письма после создания пользователя и т. Д. И т. Д.), Который зависит от адреса электронной почты. Решение, представленное в руководствах facebook_connect, состояло в том, чтобы сохранить модель пользователя, минуя проверки, но это слишком неправильно ..

Как бы вы изменили дизайн пользовательской модели до , включив любой / оба метода аутентификации (стандартный и / или facebook_connect)?

  1. Выполнить рефакторинг всех проверок (с помощью: instance =>: is_facebook_user), наложить условия на наблюдателей и т. Д.

  2. Реализация STI на пользовательской таблице (и иметь StandardUser / FacebookUser, каждый с настраиваемыми модулями аутентификации)

  3. Таблица пользователей с полиморфной ссылкой на standard_user и facebook_user

  4. Другая идея

Обратите внимание, что также требуется функциональность для привязки «стандартной» учетной записи к учетной записи «facebook», что усложняет ситуацию.

Ссылки:

http://crazyviraj.blogspot.com/2010/01/test-cases-for-basic-facebook-connect.html

http://blog.yangtheman.com/2009/08/23/how-to-integrate-facebook-connect-with-a-rails-app/comment-page-1/

1 Ответ

1 голос
/ 09 февраля 2011

Хороший пример для начала здесь .

...