Для своего сайта я использую систему входа, похожую на ту, что на SO. Пользователь может войти с помощью своей учетной записи Facebook, Google (Gmail openID), Twitter.
Этот вопрос не касается конкретных реализаций oAuth или openID.
Вопрос в том, как узнать, входит ли один и тот же пользователь в разные провайдеры.
Позвольте мне привести пример:
Бобо приходит на сайт для входа на сайт, нажав «Войти через Facebook» . Поскольку это его первый визит, мы создаем для него аккаунт.
Позже Бобо заходит на сайт. На этот раз он нажимает «Войти через Google» . Так как я узнаю, что это один и тот же человек, чтобы я мог добавить этого провайдера в свою учетную запись вместо создания новой (и дублирующей) учетной записи.
Могу ли я доверять только по электронной почте?
Какой лучший способ справиться с этим. Как ТАК это делает?
Есть идеи?
Edit:
Если я доверяю по электронной почте, есть ли вероятность, что один и тот же адрес электронной почты может использоваться разными пользователями? Может ли это быть проблемой безопасности?