2009-05-05 7 views
13

PHPでREST APIを作成しようとしていますが、AmazonのS3アプローチと同様の認証方式を実装したいと思います。これには、要求にカスタム 'Authorization'ヘッダーを設定することが含まれます。

私は$ _SERVER ['HTTP_AUTHORIZATION']でヘッダーにアクセスできると思っていましたが、var_dump($ _ SERVER)にはどこにもありません。 apache_request_headers()関数は私の問題を解決しますが、私のホストはPHPをCGIとして実装しているため、利用できません。

PHPで完全なリクエストヘッダにアクセスできる別の方法はありますか?

答えて

22

ので、同様にあなたは、CGIの障壁を越えて、あなたのヘッダを取得するには、いくつかのmod_rewrite魔術を行う必要があります:あなたが他の目的のためにmod_rewriteを使用している場合、それは$_SERVER['REDIRECT_HTTP_AUTHORIZATION']になってしまう可能性があること

RewriteEngine on 
RewriteRule .? - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

<?php 
    $auth = $_SERVER['HTTP_AUTHORIZATION']; 
?> 

は注意。

+0

それは魅力のように機能します、ありがとうございます。 – vamin

+0

私のために働いた! :) +1 – MrTechie

3

ではなく、ApacheモジュールインタフェースのCGIインタフェースを使用する場合は、HTTPヘッダーは、環境変数として利用可能であるべき

$_ENV['HTTP_AUTHORIZATION'] 
を試してみてください。

関連する問題