.Net Core Web API с аутентификацией JWT и несколькими провайдерами - PullRequest
0 голосов
/ 05 сентября 2018

Я создаю приложение .Net Core Web API, которое реализует аутентификацию на основе JWT, и планирую предложить пользователям различных поставщиков. Они должны иметь возможность зарегистрироваться, используя любую имеющуюся учетную запись Facebook, Google или Twitter.

Для приложений MVC есть такие библиотеки, как AspNet.Security.OAuth.Providers , которые реализуют аутентификацию на основе файлов cookie, но я не могу найти ничего подобного для веб-API. Хотя я искал все виды онлайн-ресурсов, я не верю, что я первый, кто пытается достичь этой цели.

Я не против сделать это с нуля (на самом деле я многому учусь), но у меня такое чувство, что я что-то упускаю.

Существует ли какой-либо пакет библиотеки / nuget, который предлагает готовую аутентификацию на основе JWT с несколькими провайдерами?

1 Ответ

0 голосов
/ 05 сентября 2018

Библиотека Microsoft.AspNetCore.Authentication содержит все необходимые расширения. Вы можете включить их, связав их с помощью метода AddAuthentication () в IServiceCollection.

using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.JwtBearer;
...
public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication()
        .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => { ...})
        .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options => {...})
        .AddMicrosoftAccount(microsoftOptions => { ... })
        .AddGoogle(googleOptions => { ... })
        .AddTwitter(twitterOptions => { ... })
        .AddFacebook(facebookOptions => { ... });

}

Прочитайте раздел ниже этот код для хорошего объяснения.

...