Если мне нужно запустить службу, которая позволила бы пользователям проходить аутентификацию через "локальные" комбинации имени пользователя и пароля и ТАКЖЕ любое количество служб OAuth - как могла бы выглядеть эта пользовательская модель данных?
Обычно, если я сам обрабатывал все логины, в "пользовательской" базе данных (при условии, что MySQL), поля имени пользователя и пароля будут необходимы как ненулевые. Но если мои пользователи просто захотят войти в систему Facebook, я бы просто сохранил автотекст Facebook и не имел локального имени пользователя или пароля.
Кроме того, что, если они хотят войти в систему с помощью Twitter-Creds, а затем tumblr, а затем независимо от службы? Я мог бы сохранить поле для каждого типа, но это может стать немного громоздким. Будет ли я лучше хранить другую таблицу "методов проверки подлинности" из-за отсутствия лучшего термина, поэтому у меня могут быть отношения "один ко многим" между пользователями и их аутентификация?
В принципе, я спрашиваю, знает ли кто-нибудь о лучшей отраслевой стандартной практике для этого сценария или может указать мне в правильном направлении (или если кто-то реализовал что-то подобное, что хорошо работает для них). Один пользователь, несколько методов аутентификации - какой лучший способ сохранить эту информацию?
Если какое-либо из сделанных мной допущений неверно, прошу прощения, пожалуйста, поправьте меня.