моделирование пользователей с помощью Oauth 2

Я создаю веб-приложение, используя rails 3. У меня есть собственная регистрация пользователя, вход в систему и аутентификация работает нормально, и я хочу добавить реализацию Oauth 2, чтобы люди могли подключаться к Facebook и входить в систему / регистрироваться с меньшим количеством шагов.

У меня есть начало этой успешной работы. Пока что я могу заставить facebook аутентифицировать пользователей и дать мне разрешение на доступ к их информации. Я еще не пробовал настроить аутентификацию Twitter, но полагаю, что это будет работать аналогичным образом.

Сейчас я размышляю, как интегрировать это в мою существующую модель пользователя, которая в основном состоит из таблицы пользователей, у которых есть электронные письма, имена и пароли.

Должен ли я оставить свою таблицу пользователей как есть и создать таблицу поставщиков доступа:

id | user_id | provider_id | access_key
---------------------------------------
1  |    4    |     1       |   xyz
2  |    4    |     2       |   pqr
3  |    7    |     1       |   dfr

и, скажем, таблицу «Информация о пользователях Facebook», где я храню информацию о пользователе, полученную в результате доступа к этому пользователю в facebook graph?

Таким образом, я могу нормализовать таблицу Users с основной информацией, которая есть у каждого пользователя, независимо от того, подключены ли они через facebook или нет (имя, адрес электронной почты, пароль), и дополнять эти данные данными из их профиля facebook он становится доступным?

Есть ли лучший способ сделать это? Есть ли хорошее руководство или учебное пособие для разработки такого типа модели базы данных (например, Quora)? Кстати, я тоже могу справиться с учебником по PHP!

Извините за открытый вопрос.

8
задан David Tuite 1 March 2011 в 17:53
поделиться