Ответ 1
Я делаю то же самое, и мое решение должно соответствовать адресам электронной почты, которые вы получаете от этих соответствующих API.
Для Facebook вам требуется специальное разрешение от конечного пользователя, чтобы получить зарегистрированный там адрес электронной почты. Вы делаете это, добавляя &scope=email
к первому запросу oauth.
Недостатком является то, что вам нужно получить это разрешение от конечного пользователя, и они могут снизиться. Другим недостатком является то, что пользователям необходимо использовать те же адреса электронной почты для Google, Facebook и Twitter.
Преимущество состоит в том, что пользовательские записи объединяются автоматически, поэтому пользователи могут напрямую обращаться ко всем своим данным, если они впервые вошли в систему через Google, а во второй раз через Facebook.
Другим подходом было бы вручную объединить свои данные, заставив их войти в Google, когда они уже вошли в систему через Facebook. Затем вы можете сделать вывод, что они являются одним и тем же пользователем, даже если они используют разные адреса электронной почты для обоих. Но это более утомительный подход, поскольку вам все равно необходимо объединить пользовательские данные приложения из обеих учетных записей.