Подтвердить что ты не робот

Можно ли проверить, подтверждено ли электронное письмо на Facebook?

Update

Об этом сообщается в Facebook через https://www.facebook.com/whitehat/report/ 16 декабря 2013 года, а Facebook ответил 17 декабря, что ошибка уже давно был исправлен.

Я протестировал это с помощью своей учетной записи Facebook (что я до сих пор не подтвердил адрес электронной почты) и при использовании Инструмент API-интерфейса Grap невозможно получить адрес электронной почты этой учетной записи с помощью API-интерфейса Graph или с помощью запроса FQL.

Вывод:. Адрес электронной почты, который вы получаете через Facebook с помощью API-интерфейсов Graph или FQL, является проверенным электронным письмом. Если учетная запись еще не проверила его по электронной почте, пока это невозможно получить.

Оригинальное сообщение

Я создаю веб-приложение с SSO, которое предлагает пользователю войти в систему с помощью Google или Facebook. Я хотел бы, чтобы пользователи, у которых есть оба типа учетных записей, отображались как один и тот же пользователь в моей системе, независимо от того, с какой личностью они входят в систему. Чтобы достичь этого, я думаю об использовании адреса электронной почты в качестве идентификатора, чтобы узнать, следует ли мне создать новую учетную запись или если пользователь уже существует.

Чтобы не вводить какие-либо проблемы с безопасностью, я должен знать, что адрес электронной почты проверен и фактически принадлежит пользователю. Для Google userinfo API может сказать мне, проверено ли электронное письмо или нет, поэтому здесь нет никаких проблем. Но я не могу найти ничего подобного в Facebook Graph API.

Возможно ли узнать, подтвержден ли адрес электронной почты на Facebook?

Я знаю, что есть поле verified, но это только говорит, проверяется ли учетная запись, а не адрес электронной почты.

Сначала было похоже, что вы можете использовать Graph API для учетных записей, на которых подтвержден адрес электронной почты. Если адрес не был подтвержден, я просто получил сообщение о том, что мне сначала нужно было подтвердить адрес электронной почты, прежде чем вы сможете войти на любой сторонний сайт.

Однако это не похоже на все учетные записи. В некоторых случаях можно получить доступ ко всем частям Facebook, даже если у вас нет подтвержденного адреса электронной почты. Один из примеров этого - когда вы регистрируетесь с @myopera.com почтовый адрес.

Когда вы подписываетесь на Facebook с адресом электронной почты @myopera.com, вы получаете сообщение о том, что ваша учетная запись была временно заблокирована, как только вы отправите форму регистрации. Чтобы продолжить, вам нужно указать свой номер телефона, чтобы подтвердить свою учетную запись и "сохранить Facebook в безопасности и освободить от спама" (извините за шведский на скриншоте, это было до того, как я смог попасть в Facebook и сменить язык на английский):

Security check during sign up

Когда вы указываете свой номер телефона, вы вошли в систему, и Facebook больше не навязывает вам, что вы должны подтвердить свой адрес электронной почты.

Единственное место, где вы можете видеть, что ваш адрес электронной почты еще не подтвержден, находится на странице настроек:

Facebook settings view with unconfirmed email address

Настройки мобильных устройств, которые обычно недоступны до того, как вы подтвердили свой адрес электронной почты, доступны и перечислены номер телефона, введенный во время регистрации:

Facebook mobile settings view with unconfirmed email address

В дополнение к этому также можно войти на сторонние сайты с неподтвержденным адресом электронной почты:

Logging in to graph API explorer with an unconfirmed email address

Когда я подключаюсь к графику api с этим пользователем, я могу получить неподтвержденный адрес электронной почты, а поле verified возвращает true как ожидалось, так как я проверил учетной записи, добавив номер телефона. Поэтому, очевидно, я не могу доверить, что адрес электронной почты, который я получаю от Facebook, действительно принадлежит пользователю, у которого есть учетная запись Facebook.

Есть ли другой способ узнать, проверен ли адрес электронной почты или нет, или я должен сам его проверить, если я хочу использовать его для идентификации пользователя?

4b9b3361

Ответ 1

Хотя это не самый оптимальный способ сделать это, вы можете попробовать обходной путь, просто отправив поиск и проанализируя результаты:

http://www.facebook.com/search/results.php?q=<email address here>

Кроме того, вы также можете установить какие-либо настройки конфиденциальности, которые пользователи настроили для себя, насколько они доступны для поиска, но вместо другого...

Ответ 3

Я искал официальное выражение Facebook по этому вопросу и, наконец, нашел это: https://developers.facebook.com/docs/facebook-login/multiple-providers#postfb1, в котором четко сказано, что разработчик не должен полагаться на факт этот адрес электронной почты подтвержден.