Поиск пользователей Laravel auth0 возвращает полный список

У меня есть следующий кусок кода:

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

Смысл этого состоит в том, чтобы вернуть одного пользователя с заданным id

Однако всякий раз, когда я звоню, я получаю полный список моих пользователей.

Может кто-нибудь сказать мне, что я делаю не так?

0

Решение

Согласно документация для поиска 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 метод здесь.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector