Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用fusion auth JWT填充lambda是否可以将租户id添加为声明?_Jwt_Fusionauth - Fatal编程技术网

使用fusion auth JWT填充lambda是否可以将租户id添加为声明?

使用fusion auth JWT填充lambda是否可以将租户id添加为声明?,jwt,fusionauth,Jwt,Fusionauth,我们正在使用fusion auth为我们的几个应用程序在登录时生成JWT令牌。然后,令牌用于访问我们的几个API。我们的API需要确定用户属于哪个租户。如果可以使用JWT令牌来实现这一点,那就太好了。默认情况下,fusion auth生成的令牌包含aud头中的应用程序id和sub头中的用户id,但不包含租户id 我们确实有其他方法来识别用户所属的租户,到目前为止,这些方法一直在为我们工作,但这总感觉像是一种变通方法,会增加请求的开销 我们成功地使用JWT lambda populate向用户添加

我们正在使用fusion auth为我们的几个应用程序在登录时生成JWT令牌。然后,令牌用于访问我们的几个API。我们的API需要确定用户属于哪个租户。如果可以使用JWT令牌来实现这一点,那就太好了。默认情况下,fusion auth生成的令牌包含
aud
头中的应用程序id和
sub
头中的用户id,但不包含租户id

我们确实有其他方法来识别用户所属的租户,到目前为止,这些方法一直在为我们工作,但这总感觉像是一种变通方法,会增加请求的开销

我们成功地使用JWT lambda populate向用户添加自定义索赔,我认为这是添加租户id的方法,但是
populate
方法无法使用:

例如:

// It would be great if the tenant context was passed as an argument to the populate method

function populate(jwt, user, registration, tenant) {

  // Add the tenant id claim
  jwt.tenantId = tenant.id;

  // Add other claims....
}
解决方法是将租户id添加到用户自定义数据中,然后我们可以在lambda中访问这些数据,但是我相信您会同意这有点笨拙

目前使用fusion auth有什么方法可以做到这一点吗?或者它需要一些工作,如果需要的话,我可以将其作为一个功能请求提出


再次感谢您的出色工作和持续支持

tenantId
位于传递到lambda的用户对象上。您可以将其移动到JWT,如下所示:

function populate(jwt, user, registration) {
  jwt.tenantId = user.tenantId;
}
API文档中似乎缺少此项。我已经更新了,应该很快就可以使用了

编辑:此字段现在记录在API文档中的用户对象上:


此外,如果你想成为超级JWT-y,你可以将声明缩短为
tid
或其他内容

谢谢你的迅速回复。我们已经测试过了,效果非常好!用户对象确实包含可以轻松添加到声明中的租户属性。哈哈!感谢您的建议,我们将继续:D这样做的能力将极大地改进我们的安全中间件