Регистрация / вход в ASP.NET Core API Facebook

Я работаю над ASP.NET Core API, и мне нужно добавить возможность регистрации в социальной службе, например. Facebook. Сценарий должен быть, например, Пользователь Android-приложения должен нажать «Зарегистрироваться через Facebook» при запуске, затем должно открыться приложение Facebook, затем пользователь должен нажать «Подтвердить» и зарегистрироваться в приложении.

Веб-пример Asp.net по умолчанию показывает, как это сделать с веб-страницей на том же хосте, что и API с ответом return Challenge (), который, как я понял, в основном возвращает HTML-страницу.

Каков здесь правильный поток и есть ли для этого существующие библиотеки? Насколько я понимаю, теперь поток выглядит примерно так: 1. Сервер API имеет мои AppId и AppSecret от Facebook 2. Приложение Android должно запрашивать «токен приложения» с сервера API 3. Приложение Android должно вызывать Facebook с этим токеном и получать «токен подтверждения пользователя. «4. Приложение Android должно передать« токен подтверждения пользователя »на сервер API 5. Сервер API должен вызвать Facebook с« токеном AppId / AppSecret + токен подтверждения пользователя »и получить подробную информацию о пользователе и создать локального пользователя в базе данных. 6. Сервер API должен создать «токен API» для этого пользователя. 7. Приложение Android должно использовать «токен API»

По крайней мере, я хочу понять, чем заменить этот код из примера на:

public IActionResult ExternalLogin(string provider, string returnUrl = null) {
   // Request a redirect to the external login provider.
   var redirectUrl = Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl });
   var properties = signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
   return Challenge(properties, provider);

person Andrey Biryulin    schedule 08.10.2016    source источник


Ответы (1)


нужно понять, что шаблон веб-приложения по умолчанию, представленный в VS 2015, использует удостоверение ASP.NET с проверкой подлинности файлов cookie. cookie auth работает для веб-браузеров, но для аутентификации в приложении Android вам понадобится что-то для выдачи токенов jwt в дополнение к файлам cookie или вместо них. Для этого в ядре asp.net от Microsoft нет ничего встроенного, рекомендуется использовать IdentityServer4

person Joe Audette    schedule 08.10.2016