ASP.NET 核心 3,Angular 8,ASP.NET 核心身份、角色和基于令牌的身份验证

ASP.NET Core 3 with Angular 8, ASP.NET Core Identity, Roles and token based authentication

问题:
创建一个使用从 api 客户端传递的令牌保护的 WebApi。
一些 api 方法应该只对定义了特定角色的用户可用。
例如

场景如下所示:
Angular8调用WebApi登录

httpClient.Post(new LogInRequest(userName, password));

WebApi 登录用户并生成令牌

signInManager.PasswordSignInAsync(userName, password);
var token = GenerateToken(userName); // token should be generated internally
return token;

Angular8 调用 WebApi 并在 header 中包含令牌

httpClient.Post(header: "TOKEN", new CreateCompanyRequest(company));

现在 WebApi 检查是否允许分配给令牌的用户执行此操作

[Authorize("Supervisor")] // only user with Supervisor role should be able to use this controller
public class CompanyController : Controller

以上代码只是我认为它如何工作的示例。到目前为止,我已经尝试阅读一些 JWT Bearer 解释,但这些文章中的大部分来自旧版本 asp.net。 如果你能向我解释这个身份验证应该如何工作,或者给我一些关于如何将 asp.net 核心身份与 webapi 令牌身份验证

结合的文档

您可以参考下面link,它向您介绍了在asp.net核心网络api中使用asp.net核心身份验证,JWT令牌授权的完整示例:

https://fullstackmark.com/post/13/jwt-authentication-with-aspnet-core-2-web-api-angular-5-net-core-identity-and-facebook-login

您只需将其 source code 调整为 asp.net 核心 3.0 和 3.0 软件包即可。