我正在创建一个.Net Core Web API应用程序,该应用程序实现基于JWT的身份验证,并计划为用户提供不同的提供程序。他们应该能够使用自己拥有的任何Facebook,Google或Twitter帐户进行注册。
对于MVC应用程序,有诸如AspNet.Security.OAuth.Providers之类的库,它们实现基于cookie的身份验证,但是我找不到与Web API类似的东西。尽管我一直在搜索各种在线资源,但我不相信我是第一个尝试实现此目标的人。
我不介意从头开始(实际上我在学很多东西),但是我有一种缺失的感觉。
是否有任何库/ nuget包提供与多个提供商的基于JWT的现成身份验证?
答案 0 :(得分:0)
Microsoft.AspNetCore.Authentication库包含您需要的所有扩展。 您可以通过在IServiceCollection的AddAuthentication()方法上链接它们来启用它们。
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 => { ... });
}
阅读this代码下面的部分,以获得很好的解释。