我有以下代码:
$auth0Api = new Management(env('AuthToken'), env('Auth0Domain'));
$user = $auth0Api->users->search([ "user_id" => "google-oauth2|103122844576645532487"]);
重点是返回具有给定id
但是,每当我打电话给我时,我都会得到我的用户的完整列表。
谁能告诉我我做错了什么?
答案 0 :(得分:1)
根据documentation for Auth0 search他们使用Lucene Query Syntax,这意味着google-oauth2 user with the id of 103122844576645532487
的Auth0搜索查询应如下所示:
identities.provider:"google-oauth2" AND user_id:"103122844576645532487"
您正在使用的PHP SDK根据withParam
方法提供的键/值,为您汇总API的请求。您使用的search
方法会获取参数(['user_id' => '...']
)并将其传递给withParam
,然后执行您的请求。
您的search([...])
代码正在转换为以下API请求:
/api/v2/users?user_id="google-oauth2|10312284457664553248"
但是,API不支持user_id
端点上的api/v2/users
参数,并且您的请求正在执行api/v2/users
,这是返回所有用户的请求。这就是您接收所有用户的原因:您没有(正确)传递搜索查询。
在构建搜索时,您需要专门包含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的文档。