/helix/users doesn't return info on Bearer token

I’m having trouble getting info on the user of a specified Bearer token from the API. I thought I had it when I found this thread, but it turns out, authentication for once isn’t the culprit (presumably).

If I make a request (disclaimer: I’m using Curl and PHP for this) to /helix/users and provide a login query parameter, the API returns a JSON object containing the data, as expected.

// works fine
$curl = curl_init();
$url = 'https://api.twitch.tv/helix/users?login=forsen';
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, 1 );
curl_setopt( $curl, CURLOPT_HTTPHEADER, [
	'Authorization: Bearer 59ppyp<redacted>vaf7zrm',
	'Client-Id: jd07j<redacted>zcdle8'
] );

$response = json_decode( curl_exec( $curl ), true );
curl_close( $curl );

If I provide nothing, reading the docs I expected it to return info on the username associated with the Bearer token I’m sending as a header with the request. Instead I get a Status 400: Bad Request error and Must provide an ID, Login or OAuth Token.

// doesn't work
$curl = curl_init();
$url = 'https://api.twitch.tv/helix/users';
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, 1 );
curl_setopt( $curl, CURLOPT_HTTPHEADER, [
	'Authorization: Bearer 59ppyp<redacted>vaf7zrm',
	'Client-Id: jd07j<redacted>zcdle8'
] );

$response = json_decode( curl_exec( $curl ), true );
curl_close( $curl );

The weird thing is: if I do the same request via Javascript fetch, again providing no query parameters, the request works!

What could be going wrong here?