У меня есть следующий кусок кода:
$auth0Api = new Management(env('AuthToken'), env('Auth0Domain'));
$user = $auth0Api->users->search([ "user_id" => "google-oauth2|103122844576645532487"]);
Смысл этого состоит в том, чтобы вернуть одного пользователя с заданным id
Однако всякий раз, когда я звоню, я получаю полный список моих пользователей.
Может кто-нибудь сказать мне, что я делаю не так?
Согласно документация для поиска Auth0 они используют Lucene Query Syntax, что означает поисковый запрос Auth0 для google-oauth2 user with the id of 103122844576645532487
должен выглядеть так:
identities.provider:"google-oauth2" AND user_id:"103122844576645532487"
PHP SDK, который вы используете, собирает запрос к API для вас под капотом на основе ключа / значений, предоставленных через withParam
метод. search
метод, который вы используете, принимает ваши параметры (['user_id' => '...']
) и передает их withParam
, тогда ваш запрос выполняется.
Ваш search([...])
Код переводится в следующий запрос API:
/api/v2/users?user_id="google-oauth2|10312284457664553248"
Тем не менее, API не поддерживает user_id
параметр на api/v2/users
конечная точка, и ваш запрос выполняется как api/v2/users
, то есть просьба вернуть всех пользователей. Вот почему вы получаете всех своих пользователей: вы не (правильно) передаете поисковый запрос.
Вы должны специально включить q
(query) параметр при построении вашего поиска, и этот параметр должен равняться действительному Lucene Query.
$auth0Api->users->search([
'q' => 'identities.provider:"google-oauth2" AND user_id:"103122844576645532487"'
]);
Это будет искать пользователей, где их провайдер google-oauth2
и их user_id 103122844576645532487
,
Вы можете прочитать документацию для api/v2/users
метод здесь.
Других решений пока нет …