我想使用FusionAuth的lambda特性来填充JWT,这取决于用户登录的应用程序,因为同一个用户可以登录到不同的应用程序,并在其中具有多个角色或组。我不希望JWT填充每个角色,是用户可以在应用程序中执行的角色操作(遵循NIST RBAC模型,它将是类似“read:attentions”或“delete:tests”的权限),因为它可能有几十个权限(syze原因),而不是我希望JWT填充用户在特定应用程序中拥有的组。我尝试使用空数组为roles属性赋值,但没有成功。我知道这个工具默认情况下不允许您更改roles属性,但是有一种方法可以删除它吗?
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"
}发布于 2020-01-21 23:26:03
roles声明由FusionAuth保留,不能由Lambda修改。有一个open feature计划在即将发布的版本中完成,以放松这一限制。
交付此功能后,您可以选择删除或修改roles申请。
JWT Populate Lambda文档中概述了当前保留的声明。
https://stackoverflow.com/questions/59815138
复制相似问题