Я использую два поля в своей локальной учетной записи или пользовательской таблице. Один из них называется "externalSystemId" (TINYINT), а другой - "externalId" (DOUBLE). У меня есть некоторые константы кода, которые определяют различные значения externalSystemId, т.е. EXTERNAL_SYSTEM_FACEBOOK = 1, EXTERNAL_SYSTEM_OPENID = 2 и т. Д. ExternalId - это, конечно, идентификатор пользователя из этой системы.
Во время обработки объекта User в моем коде я могу легко определить, из какой системы находится пользователь, и загрузить соответствующие механизмы кода для аутентификации или отображения чего-либо, соответствующего системе, на основе externalSystemId.
Обратите внимание, что вы, возможно, захотите использовать таблицу базы данных для хранения записей внешних систем, а не констант кода, в зависимости от того, с кем вы собираетесь иметь дело, и от того, нужна ли вам куча дополнительной информации о системе.