Sui piani hosting topweb e topwebplus PHP è configurato in modalità Fast-CGI e pertanto non vengono direttamente "recuperati" gli authentication headers (Basic, Bearer, etc). E' necessario tener presente che sui nostri prodotti viene aggiunto il prefisso REDIRECT_ alle richieste .
Per recuperare $_SERVER['PHP_AUTH_USER'] e $_SERVER['PHP_AUTH_PW'] con autenticazione Basic oppure $_SERVER['PHP_AUTH_BEARER'] con autenticazione Bearer consigliamo di aggiungere all'inizio dello script questo codice:
if(preg_match('/Basic+(.*)$/i', $_SERVER['REDIRECT_HTTP_AUTHORIZATION'], $matches)) { list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6)));
}else if (preg_match('/Bearer+(.*)$/i', $_SERVER['REDIRECT_HTTP_AUTHORIZATION'], $matches)) { $_SERVER['PHP_AUTH_BEARER'] = $matches[1]; }
//esempio recupero variabili:
echo 'HTTP_AUTHORIZATION: '.$_SERVER['HTTP_AUTHORIZATION'].PHP_EOL;
echo 'PHP_AUTH_USER: '.$_SERVER['PHP_AUTH_USER'].PHP_EOL;
echo 'PHP_AUTH_PW: '.$_SERVER['PHP_AUTH_PW'].PHP_EOL;
Nota: Va inoltre inserito nel file .htaccess la seguente direttiva:
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
per spostare gli headers di richiesta per l'autenticazione nella variabile $_SERVER['HTTP_AUTHORIZATION']
Ora possiamo provare con una chiamata curl, es:
curl https://[NOME_DOMINIO]/index.php -H "Authorization: Basic bG9naW46cGFzc3dvcmQ"
Creato a: 24/03/2016 10:58am
L'ultima volta a: 10/02/2024 9:39am
L'ultima volta a: 10/02/2024 9:39am