Laravel auth0用户搜索返回完整列表

I have the following piece of code:

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

The point of this is to return a single user with the given id

However, whenever I call this I get the full list of my users.

Can anyone tell me what im doing wrong?

According to the documentation for Auth0 search they use Lucene Query Syntax, which means an Auth0 search query for google-oauth2 user with the id of 103122844576645532487 should look like this:

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

The PHP SDK you are using assembles the request to the API for you under the hood based on key/values provided through a withParam method. The search method you are using takes your parameters (['user_id' => '...']) and passes them to withParam, then your request is executed.

Your search([...]) code is translating into the following API request:

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

However, the API does not support a user_id parameter on the api/v2/users endpoint and your request is being executed as api/v2/users, which is the request to return all users. This is why you're receiving all of your users: you are not (correctly) passing a search query.

You need to specifically include the q (query) parameter when building your search, and that parameter should equal a valid Lucene Query.

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

This will search for users where their identity provider is google-oauth2 and their user_id is 103122844576645532487.

You can read the documentation for the api/v2/users method here.