C# 使用.net核心API、身份验证

C# 使用.net核心API、身份验证,c#,reactjs,authentication,C#,Reactjs,Authentication,我想在React中编写一个SPA应用程序,它将与.net核心API进行通信。 我认为在不同的域上有两个独立的项目(API+UI)会更容易 API应该受到保护,只有经过身份验证的用户才能发出请求。 在react中,我希望有登录和注册表单,允许我注册和登录用户,并且我希望有社交提供商。我想创建整个UI来管理react SPA中的用户,并使用API保存这些数据 我做了很多研究,我有点困惑。 我真的很想使用核心身份,因为它看起来就像是专为它设计的 它有一个用户、声明、角色等的现成模型 它内置了用于

我想在React中编写一个SPA应用程序,它将与.net核心API进行通信。 我认为在不同的域上有两个独立的项目(API+UI)会更容易

API应该受到保护,只有经过身份验证的用户才能发出请求。 在react中,我希望有登录和注册表单,允许我注册和登录用户,并且我希望有社交提供商。我想创建整个UI来管理react SPA中的用户,并使用API保存这些数据

我做了很多研究,我有点困惑。 我真的很想使用核心身份,因为它看起来就像是专为它设计的

  • 它有一个用户、声明、角色等的现成模型

  • 它内置了用于管理密码、用户、角色等的服务

  • 它具有自定义身份验证方案、策略、角色等功能

我认为这是一个很好的解决方案有很多原因

不幸的是,在文档站点上有一条信息表明,对于SPA集成,它可以与Identity Server结合使用

去年我浏览了本教程的每一集(顺便说一句,很棒的教程),我非常确定,我不想在这个场景中使用Identity Server 4。据我所知,当您希望为多个应用程序提供SSO时,这是最好的解决方案,并且您希望提供一种通用方法来对所有应用程序的用户进行身份验证。它有自己的用户界面来管理用户注册、登录和管理。这不是我所需要的-我只是想让它全部写在React中,因为我希望所有应用程序都具有相同的mui主题,而无需重定向到Identity Server

但也许我错了,身份服务器将为我工作。但我发现提供自己的UI而不是MVC需要做很多工作 ()

目前我认为,我应该在后端使用Identity Core,并通过React SPA与自定义控制器进行通信,如下所示:

使用带有JWT令牌的API对React SPA进行身份验证-我认为这将根据以下示例工作: -但这里没有身份核心

但我不确定这是否是最好的方法,我也不知道我是否能够以这种方式添加社交提供商

此外,我还发现了一些教程,介绍了如何将comine React应用程序与.net core后端(和身份验证)结合使用,如下所示:

但我希望有两个独立的应用程序,API和UI


实现这一目标的最佳方法是什么?

实现这一目标的方法有很多,网上也有一些指南。你做过什么调查吗?使用JWT进行身份验证是一种非常常见的方法。顺便说一句,身份不会强迫你使用剃须刀页面。谢谢你的回答,我编辑了我的问题,并添加了更多关于我已经研究的信息。因此,如果你想自己管理你的用户(而不是通过谷歌、脸书等登录),那么身份应该对你来说很好。无论您如何管理用户,生成JWT都应该是一样的。问题是,我真的希望能够登录并向社交提供商注册。。没有密码。对于.net核心身份和react,这可能吗?我不确定它是否被视为身份的一部分,但可以肯定的是,您可以在使用身份的同时使用社交提供商的登录。React是一个完全独立的东西——它只是一个前端层,实际上与所有其他东西没有太多关系。因此,是的,您当然也可以使用React:)