Есть сайт, на котором можно зарегистрироваться через e-mail или войти с помощью fb/vk.
Если пользователь входит через FB, то FB передаёт почту пользователя и ее можно записать в базу, чтобы использовать при дальнейших каких-то рекламных рассылках. Через VK почта не отдается.
Отсюда рождается вопрос:
человек вначале зарегистрировался через e-mail, а потом решил зайти через FB.
От FB приходит почта и мы видим, что пользователь с таким e-mail уже есть в базе.
Как дальше вести пользователя?
1) Молча залогинить и привязать FB-id к юзеру с этой почтой.
2) Сказать, что пользователь с таким e-mail зарегистрирован и предложить ввести пароль.
3) Хранить fb_email в отдельной колонке и просто создать нового пользователя.
Замечу, что FB не даёт логиниться на сторонние сервисы, если почта в самом FB не подтверждена.
4) Сказать, что пользователь с таким email уже есть. Предложить объединить. При согласии — спросить пароль. При отказе — попросить указать другой email и создать нового пользователя.
Два пользователя с одинаковым e-mail адресом могут зарегистрироваться в двух разных системах только тогда, когда они знают пароль от этого адреса, чтобы провести процедуру активации. Есть пара вариантов, как можно это провернуть: сервис позволяет без подтверждения изменять пароль регистрации, или есть ошибка в этом механизме. Тогда достаточно сменить адрес, и тебя пустят везде, где происходит автоматическое связывание. А еще можно удалить адрес, и он через время достанется кому-то другому.
Так что при всех плюсах к юзабилити автоматического связывания, безопасным это назвать очень тяжело.