我们使用IdentityServer3作为身份提供商,我们的一项声明是权限。
但是当用户只有一个权限时,生成的JWT包含名称为" permission"但值是简单的字符串,否则它是一个数组。我们如何申报索赔价值"许可"作为一个数组?
以下是我们如何填写索赔的摘要:
foreach (var permission in permissions)
{
claims.Add(new Claim(Scopes.SCOPE_PERMISSION, $"{permission.id}>>{permission.name}"));
}
答案 0 :(得分:2)
身份服务器附带值类型json
,因此“权限”属性可以封装为
claims.Add(
new Claim(
Scopes.SCOPE_PERMISSION,
JsonConvert.SerializeObject(permissions.Select(s => $"{s.id}>>{s.name}")),
"json"));