C# ASP.NET核心是否具有内置的OAuth2令牌交换?

C# ASP.NET核心是否具有内置的OAuth2令牌交换?,c#,asp.net-core,authentication,oauth-2.0,C#,Asp.net Core,Authentication,Oauth 2.0,我正在构建一个ASP.NET核心应用程序,并将其用作身份验证服务器。我正试图通过使用JWT承载令牌的SPA来实现这一点。总之,一旦用户使用FusionAuth进行身份验证,前端就应该使用授权码重定向到后端服务器。然后,我的后端服务器需要在一个特殊的端点接收此代码。在该端点内,它将再次执行对FusionAuth的调用,但这一次只有服务器拥有客户机机密。反过来,FusionAuth将以JWT和刷新令牌的形式发送回授权令牌,然后服务器需要将其返回到前端 我已经研究了这个方法,在阅读了代码之后,它似乎能

我正在构建一个ASP.NET核心应用程序,并将其用作身份验证服务器。我正试图通过使用JWT承载令牌的SPA来实现这一点。总之,一旦用户使用FusionAuth进行身份验证,前端就应该使用授权码重定向到后端服务器。然后,我的后端服务器需要在一个特殊的端点接收此代码。在该端点内,它将再次执行对FusionAuth的调用,但这一次只有服务器拥有客户机机密。反过来,FusionAuth将以JWT和刷新令牌的形式发送回授权令牌,然后服务器需要将其返回到前端

我已经研究了这个方法,在阅读了代码之后,它似乎能够执行令牌交换。然而,它也有很多涉及挑战和登录/注销的逻辑。这让我觉得它应该用于基于cookie的服务器端身份验证,就像你在Razor页面上看到的那样


我要做的就是将我的服务器设置为这个身份验证中介。看起来,
.AddOAuth()
可能会为我做这件事,但可能不是为了这个目的。我找不到任何人同时使用
.AddJwt(…)
.AddOAuth(…)
的例子。ASP.NET内核中是否有执行令牌交换的机制?

简短的回答是“是”-请参阅。OAuth2有很多种风格,这意味着它可以通过多种方式进行配置。您需要阅读文档。

您是否尝试过使用IdentityModel?它不是ASP.NET核心的一部分,但它是开源的。我发现在ASP.NET core中实现授权代码授权时它很有用

以下是一些可能有用的文档:


您似乎不理解OP的问题(他们不只是想将OAuth作为一种身份验证方法添加到SPA中),而且“这是通用文档,请阅读它们以便找到您需要的内容”从来都不是一个好答案。然而,有时“阅读文档”是通用问题的唯一答案。Asp.NET Core对OAuth有丰富的支持,这远远超出了将其用作SPA的身份验证方法的范围。要理解如何应用这项技术,就必须确切地知道正在尝试什么。对于初学者来说,如果不先自己做一些研究,甚至很难用允许他人帮助的方式来表达问题。如果你认为“去阅读文档”是问题的答案,你的答案最好是作为评论。