我想使用 FusionAuth 的 lambda 功能根据用户登录的应用程序填充 JWT,因为同一个用户可以登录不同的应用程序并在其中拥有多个角色或组。我不希望 JWT 填充每个角色,因为它是用户可以在应用程序中执行的角色操作(遵循 NIST RBAC 模型,它将是像“read:attentions”或“delete:tests”这样的权限),因为它可能是几十个(syze 原因),而不是我希望 JWT 填充用户拥有该特定应用程序的组。我尝试用空数组分配角色属性,但没有成功。我知道默认情况下该工具不允许您更改角色属性,但是有办法删除它吗?
function populate(jwt, user, registration) {
jwt.group = registration.data.group;
jwt.roles = [];
}
无论如何,令牌一直具有角色,我该如何删除它们?
{
"aud": "xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
"exp": xxxxxxx,
"iat": xxxxxxx,
"iss": "acme.com",
"sub": "xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
"authenticationType": "PASSWORD",
"email": "xxxxxxx@mail.com",
"email_verified": true,
"applicationId": "xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
"roles": [
"read:attentions",
"write:attentions"
],
"group": "financer"
}