В течение серверных дней я пытаюсь получить аутентификацию OAuth с Google и Facebook для работы в моем основном проекте ASP.NET ASP.NET.
мой текущий статус:
- У меня есть проект ASP.net с базовым Web Api, в котором пользователи должны пройти аутентификацию
- У меня есть веб-приложение angular 2, которое должно использовать мой веб-api (с аутентификацией).
- У меня есть приложение для Android, которое должно использовать мою веб-api (с проверкой подлинности).
моя цель:
- Использование Google/Facebook в качестве поставщиков OAuth для входа в систему
- позже: добавление собственных учетных записей пользователей (возможно, с помощью IdentityServer4)
- Не нужно перенаправлять на специальный веб-сайт входа (например, решение IdentityServer4). Просто нажмите кнопку facebook/google в приложении, разрешите доступ, сделайте это!
В моем приложении android и angular я могу получить токены доступа из google/facebook. Теперь я хочу использовать неявный поток OAuth, чтобы аутентифицировать пользователя на моем веб-api с помощью указанных токенов доступа (помещая токены в заголовок как токен-носитель)
Есть моя проблема: есть ли какой-нибудь генетический способ сделать это легко? Для этого я не хочу использовать SDK для facebook/google.
Я пробовал следующее:
- с помощью IdentityServer4. С этим я могу войти в систему с facebook/google на моем веб-сайте, но вам необходимо перенаправить на страницу входа в IdentityServer4. Есть ли какой-либо возможный способ просто нажать на google/fb-Button в моем приложении и войти в систему, без перенаправления на страницу входа в идентификатор сервера?
- с использованием промежуточного программного обеспечения для проверки подлинности Google/facebook (https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/): Но они не проверяют мой отправленный канал токен (попробовал бесчисленные способы достижения правильной валидации). Возможно ли это использовать в веб-интерфейсе api?
- пытается использовать Microsoft.AspNetCore.Authentication.JwtBearer-Middleware и самостоятельно вводить необходимые параметры для google/facebook, но также не проверять (а также бесчисленные попытки)
В последние несколько дней я пробовал так много возможных решений, что я полностью застрял и потерял следы того, что мне нужно сделать, чтобы добиться этого. На этом этапе я прочитал почти каждую запись в asp.net web api oauth tutorial/stackoverflow, но не могу понять, как использовать это в моем случае, как я хочу. Большинство учебников предназначены только для веб-сайтов mvc или используют IdentityServer4 с перенаправлением на страницу входа в систему.
Любые предложения или решения? Что мне не хватает?