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 的文档。
我有如下一段代码:
$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 的文档。