Laravel auth0 用户搜索 returns 完整列表

Laravel auth0 users search returns full list

我有如下一段代码:

$auth0Api = new Management(env('AuthToken'), env('Auth0Domain'));    
$user = $auth0Api->users->search([ "user_id" => "google-oauth2|103122844576645532487"]);

这样做的目的是 return 具有给定 id

的单个用户

但是,每当我调用它时,我都会得到我的用户的完整列表。

谁能告诉我我做错了什么?

根据 documentation for Auth0 search they use Lucene Query Syntax,这意味着 google-oauth2 user with the id of 103122844576645532487 的 Auth0 搜索查询应该如下所示:

identities.provider:"google-oauth2" AND user_id:"103122844576645532487"

您正在使用的 PHP SDK 会根据通过 withParam 方法提供的 key/values 在后台为您组装对 API 的请求。您正在使用的 search 方法获取您的参数 (['user_id' => '...']) 并将它们传递给 withParam,然后执行您的请求。

您的 search([...]) 代码正在转换为以下 API 请求:

/api/v2/users?user_id="google-oauth2|10312284457664553248"

但是,API 不支持 api/v2/users 端点上的 user_id 参数,您的请求正在作为 api/v2/users 执行,这是对 return所有用户。这就是您收到所有用户的原因:您没有(正确)传递搜索查询。

您需要在构建搜索时特别包含 q(查询)参数,并且该参数应等于有效的 Lucene 查询。

$auth0Api->users->search([
    'q' => 'identities.provider:"google-oauth2" AND user_id:"103122844576645532487"'
]);

这将搜索身份提供者为 google-oauth2 且 user_id 为 103122844576645532487 的用户。

您可以阅读 the api/v2/users method here 的文档。