关于 blazor web assembly 和 web api 声明的 jwt 声明

jwt claim on blazor web assembly and web api claim

当我在服务器上生成 jwt 令牌时,我的声明之一是 ClaimType.Name, 但是在 blazor web assembly 中,当我解析 jwt 令牌并获得声明时, 它的名称更改为 unique_name.

谁能解释为什么会这样?

在服务器上

new Claim(ClaimTypes.Name, user.Username);

在 Blazor Web 程序集上

"unique_name" = "myUsername"

这是设计使然。 This post 包含 JwtSecurityTokenHandler 代码摘录的详细信息。

您找到的规则来自这个用于映射的词典条目:

{ JwtRegisteredClaimNames.UniqueName, ClaimTypes.Name },

基本上,Microsoft Identity Claims 会(在适当时)转换为 JWT 标准名称。