lucene查询筛选器不工作
我正在我的中使用此lucene查询筛选器不工作,lucene,auth0,auth0-delegated-admin,Lucene,Auth0,Auth0 Delegated Admin,我正在我的中使用此过滤器挂钩 function(ctx, callback) { // Get the company from the current user's metadata. var company = ctx.request.user.app_metadata && ctx.request.user.app_metadata.company; if (!company || !company.length) { return callback(n
过滤器挂钩
function(ctx, callback) {
// Get the company from the current user's metadata.
var company = ctx.request.user.app_metadata && ctx.request.user.app_metadata.company;
if (!company || !company.length) {
return callback(new Error('The current user is not part of any company.'));
}
// The GREEN company can see all users.
if (company === 'GREEN') {
return callback();
}
// Return the lucene query.
return callback(null, 'app_metadata.company:"' + company + '"');
}
当公司为绿色的用户登录时,可以看到所有用户。但是当用户登录时,其公司是红色的
无法看到其公司是红色的
的任何用户
我需要这样做时,用户登录,用户应该只能访问他的公司内的用户。(绿色公司的用户除外)
但上面的代码并没有给出预期的结果。可能是什么问题?这可能与屏幕上的一个小警告有关
基本上,它们不再允许您在app\u metadata
字段中搜索属性。不幸的是,这一变化是突然发生的
我们必须对API进行更改,以便将app\u元数据的副本保存在单独的数据库中,并将lucene语法转换为MongoDB查询,以便我们可以通过user\u id:“”或user\u id:“”或…
链进行查询
不过有一点需要注意,您不能传递长度超过72user\u id
s的查询。这一数字到目前为止还没有记录在案,而且是根据经验得出的
此外,您不能依赖Auth0的钩子将新用户添加到数据库中,因为这些钩子不适用于社交登录,只适用于用户名密码验证
连接
我希望这能给你一些解释,解释为什么它不起作用,以及一个可能的解决方案。
如果我是你,我会为Auth0寻找一个替代方案,这就是我们目前正在做的。我最终得到了这个解决方案
使用搜索功能筛选用户。我必须更改以下两个文件
fetchUsers
函数位于client\actions\user.js
改变
导出函数fetchUsers(搜索='',重置=false,页面=0)
到
导出函数fetchUsers(search='@red.com',reset=false,
第页=0)
及
onReset
client\containers\Users\Users.jsx中的函数
改变
onReset=()=>{this.props.fetchUsers('',true);}
到
onReset=()=>{this.props.fetchUsers('@red.com',true);}
谢谢你的回答。这对我帮助很大。