Я разрабатываю веб-сайт в ASP.NET MVC 5 (в настоящее время использую версию RC1). Сайт будет использовать Facebook для аутентификации пользователей и для получения исходных данных профиля.
Для системы аутентификации я использую новый механизм идентификации ASP.NET на основе OWIN (http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx), поскольку он значительно упрощает процесс аутентификации с внешними поставщиками.
Проблема заключается в том, что как только пользователь впервые войдет в систему, я хочу получить его адрес электронной почты из профиля Facebook, но эти данные не включены в генерируемые заявки. Поэтому я подумал об этих альтернативах, чтобы получить адрес:
-
Попросите механизм ASP.NET Identity включить адрес электронной почты в набор данных, который извлекается из Facebook, а затем преобразован к претензиям. Я не знаю, возможно ли это вообще.
-
Используйте графический API Facebook (https://developers.facebook.com/docs/getting-started/graphapi) в получить адрес электронной почты, используя идентификатор пользователя Facebook (который является включенными в данные формулы изобретения). Но это не сработает, если пользователь задайте свой адрес электронной почты как закрытый.
-
Используйте графический API Facebook, но указав "я" вместо Идентификатор пользователя Facebook (https://developers.facebook.com/docs/reference/api/user). Но требуется токен доступа, и я не знаю, как (или если это возможно вообще) получить токен доступа, который использует ASP.NET для получить пользовательские данные.
Итак, вопрос:
-
Как я могу настроить механизм идентификации ASP.NET дополнительную информацию из Facebook и включить ее в формулы данные?
-
Или, альтернативно, как я могу получить сгенерированный токен доступа, так что что я могу спросить Facebook сам?
Спасибо!
Примечание: для системы аутентификации мое приложение использует код на основе примера проекта, связанного с этим ответом SO: qaru.site/info/89117/...