$ _server에 표시되지 않는 요청 헤더에 어떻게 액세스 할 수 있습니까?
-
05-07-2019 - |
문제
PHP에서 REST API를 만들려고 노력하고 있으며 Amazon의 S3 접근 방식과 유사한 인증 체계를 구현하고 싶습니다. 여기에는 요청에서 사용자 정의 '승인'헤더를 설정하는 것이 포함됩니다.
$ _server [ 'http_authorization']로 헤더에 액세스 할 수 있다고 생각했지만 var_dump ($ _ server)에서는 찾을 수 없습니다. APACHE_REQUEST_HEADERS () 함수는 내 문제를 해결하지만 호스트는 PHP를 CGI로 구현하므로 사용할 수 없습니다.
PHP에서 완전한 요청 헤더에 액세스 할 수있는 다른 방법이 있습니까?
해결책
당신은 몇 가지를해야합니다 mod_rewrite
마법사는 CGI 장벽을 지나서 헤더를 얻기 위해 :
RewriteEngine on
RewriteRule .? - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
<?php
$auth = $_SERVER['HTTP_AUTHORIZATION'];
?>
사용하는 경우에 유의하십시오 mod_rewrite
다른 목적으로, 그것은 결국 존재 할 수 있습니다 $_SERVER['REDIRECT_HTTP_AUTHORIZATION']
.
다른 팁
노력하다
$_ENV['HTTP_AUTHORIZATION']
Apache 모듈 인터페이스 대신 CGI 인터페이스를 사용하는 경우 HTTP 헤더를 환경 변수로 사용할 수 있어야합니다.
모든 종류의 HTTP 관련 액세스를 허용하는 환상적인 PECL 확장 기능이 있습니다. pecl_http 더 구체적으로 http://php.net/http 그리고 http://php.net/manual/en/function.http-get-request-headers.php.
제휴하지 않습니다 StackOverflow