Angular 前端和.net core 后端哪个认证方式好

Which authentication method is good with Angular front end and .net core backend

我有一个 angular 10 应用程序(从 angular 4 升级),它是 运行 作为前端并具有 .net core 3.1 web api(连接到 SQL 服务器数据库)这是 运行 作为后端项目。

现在我打算使用这两个应用程序来实现登录和身份验证。但是对我应该遵循哪种技术感到困惑? JWT , Oauth (please point any others also there) or i should look for something like OWIN 之类的技术看过这么多?哪个在安全性和性能方面最好? 在数据库中散列密码的最佳方法是什么?

我知道这个主题和问题需要大量考虑,但只要指导就足以让我继续。

请帮帮我!

只是为了正确看待事情

  • Owin 是一种在 .NET Framework 中与您的 API 通信的方式,它有自己的方式来实现 OAuth2
  • OAuth2 是一个标准,告诉您如何 authenticate/authorize
  • JWT 是 OAuth2 用来进行身份验证的工具(通过验证令牌)

您需要将这些技术中的大部分结合到一个实现中。

通俗地说:

  • 成功登录后创建 JWT 令牌
  • 在令牌中你有一个访问令牌和一个刷新令牌
  • 刷新令牌用于在过期时重新创建访问令牌
  • 访问令牌用于验证您的身份

如果你想拥有一个认证服务器,因为你有一个大系统,我建议 IdentityServer