.net core 我们能否仅使用aspnet标识来保护dotnet core 2.0 React应用程序?

.net core 我们能否仅使用aspnet标识来保护dotnet core 2.0 React应用程序?,.net-core,react-redux,asp.net-identity,identityserver4,.net Core,React Redux,Asp.net Identity,Identityserver4,我正在dotnetcore2.0上使用React和Redux构建一个SPA。不幸的是,用于此的vs2017模板不包括身份验证/授权 环顾四周,我看到许多人在谈论JWT的使用,并建议使用Identity Server或OpenIddict来处理此问题,但我以前只使用ASP.NET Identity来处理安全问题 我的问题是,是否可以仅使用ASP.NETidentity来保护react应用程序,如果可以,为什么那么多人会直接使用JWT作为保护SPA应用程序的解决方案 基于令牌的身份验证是SPA应用程

我正在dotnetcore2.0上使用React和Redux构建一个SPA。不幸的是,用于此的vs2017模板不包括身份验证/授权

环顾四周,我看到许多人在谈论JWT的使用,并建议使用Identity Server或OpenIddict来处理此问题,但我以前只使用ASP.NET Identity来处理安全问题

我的问题是,是否可以仅使用
ASP.NET
identity来保护react应用程序,如果可以,为什么那么多人会直接使用JWT作为保护SPA应用程序的解决方案


基于令牌的身份验证是SPA应用程序的唯一方法,还是我可以使用基于Cookie的身份验证

我将试着回答你的问题

Q.1。是否可以单独使用aspnet identity来保护react应用程序的安全?如果可以,为什么会有那么多人直接使用JWT作为保护SPA应用程序的解决方案?

Q.2。基于令牌的身份验证是SPA应用程序的唯一方法,还是我可以使用基于Cookie的身份验证?

对第一个问题的回答(这个问题在技术上与基于cookie和基于令牌的身份验证方法之间的区别有关。)

基于Cookie的认证系统

  • 基于cookie的会话是状态完整的。在这里,服务器需要跟踪活动会话,而在前端/客户端创建了一个保存会话标识符的cookie
  • 您可以使用基于cookie的身份验证系统保护web api。但是在一个非常有限的范围内,因为基于cookie的系统在本机客户端上工作不好,或者假设您的web api将被其他web api使用
基于令牌的认证系统

  • 它是无状态的,因为服务器在这里不跟踪哪个令牌被颁发或哪个用户登录

  • 在这里,服务器只需要验证令牌的有效性。因此,基于令牌的方法比基于cokie的方法更加解耦

来源

  • 更新上面的(Auth0)链接不再工作
对第二个问题的回答

是的,您可以通过使用OWIN cookie authentication middileware在spa中实现基于cookie的身份验证

你可以在下面的链接上找到更多关于它的信息


以上希望会有所帮助。

如果您将在一个域中使用React和API,并且SPA将是API的唯一客户端,则建议对SameSite Cookies使用基于cookie的身份验证

  • (同域应用程序部分)
  • 较长职位:

您当然可以看到这一点。使用JWT、OAuth2或cookies,这一切都取决于您试图迎合的用例。因此,没有必要使用JWT,但您可以根据您正在尝试做的事情来决定使用什么。如果你只是一个水疗中心,那么饼干或JWT任何东西都会起作用。我认为这能为你寻找的东西提供一个完整的解决方案,如果这有帮助的话,请告诉我。