だから私はPHPの着信リクエストを解析しようとしていますが、これには次のヘッダーが設定されています:
_Authorization: Custom Username
_
簡単な質問:一体どうすれば手に入れることができますか? _Authorization: Basic
_の場合、_$_SERVER["PHP_AUTH_USER"]
_からユーザー名を取得できます。 _X-Custom-Authorization: Username
_の場合、_$_SERVER["HTTP_X_CUSTOM_AUTHORIZATION"]
_からユーザー名を取得できます。しかし、これらはどちらもカスタム認証によって設定されず、var_dump($_SERVER)
はヘッダーについて言及していないことを明らかにし(特に、_AUTH_TYPE
_が欠落しています)、get_headers()
のようなPHP5関数のみが機能します発信要求への応答。すぐに使えるUbuntuをインストールしたApacheでPHP 5を実行しています。
Apacheのみを使用する場合は、 Apache_request_headers()
をご覧ください。
トークンベースの認証の場合:
$token = null;
$headers = Apache_request_headers();
if(isset($headers['Authorization'])){
$matches = array();
preg_match('/Token token="(.*)"/', $headers['Authorization'], $matches);
if(isset($matches[1])){
$token = $matches[1];
}
}
このコードを.htaccess
に追加します
RewriteEngine On
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Authorization: {auth_code}
のようなヘッダーを渡し、最後に$_SERVER['HTTP_AUTHORIZATION']
を使用して認証コードを取得します
背景として、ApacheがAuthorization
ヘッダーを除外する理由: https://stackoverflow.com/a/17490827
アプリケーションにリクエストを渡すために使用されるApacheモジュールに応じたソリューション:
mod_wsgi、mod_fcgid:
cgi:
他のハッキング-この質問のヘッダーをマッサージする:
Justeの使用:
$headers = Apache_request_headers();
$token = $headers['token'];