嘗試從頁眉獲取授權。我嘗試了一些在這個網站找到的解決方案,但沒有得到。下面是我的示例代碼如何從頁眉獲取授權?
header('Authorization: Token '.sha1("test123"));
var_dump(apache_request_headers());
exit;
是否有可能獲取授權從頭?或者其他方法來獲取它?
嘗試從頁眉獲取授權。我嘗試了一些在這個網站找到的解決方案,但沒有得到。下面是我的示例代碼如何從頁眉獲取授權?
header('Authorization: Token '.sha1("test123"));
var_dump(apache_request_headers());
exit;
是否有可能獲取授權從頭?或者其他方法來獲取它?
我會添加評論,但聲譽不允許。
我很久以前就有過這個問題,並且認爲它與PHP/Apache配置有關。授權頭文件在它們到達您的應用程序之前在某些PHP/Apache配置中被剝離。解決方案是向.htaccess(或虛擬服務器)添加重寫。
我不記得我的決議的細節,但增加這對你的.htaccess可以幫助:
RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
我有另一個應用程序(Symfony框架)使用這個代替:
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
你也試過基本授權 - 看看是否工作?創建一個標題是這樣的:
$username = 'username';
$password = 'password';
$auth = base64_encode($username.':'.$password);
$auth_header = 'Basic '.$auth;
如果使用上面的代碼中,$ auth_header將是「基本dXNlcm5hbWU6cGFzc3dvcmQ =」
和您的完整標題是「授權:基本dXNlcm5hbWU6cGFzc3dvcmQ =」
,如果你發送你的頭,在PHP中您可以使用:
var_dump('username is: '.$_SERVER['PHP_AUTH_USER'] . ' and password is: ' . $_SERVER['PHP_AUTH_PW']);
這可能至少點你在正確的方向。
我看到的另一件事是,上面的測試代碼在我看來像你正在設置響應頭,但var_dumping請求頭?我假設你的測試涉及一個單獨的文件/應用程序/瀏覽器發送一個真正的請求,你正試圖轉儲。
我也發現,當使用基本授權時,瀏覽器可能會發送OPTIONS預先請求,也可能需要在後續授權請求發送之前處理服務器端。
請檢查此答案@deepwinter [從傳入的PHP請求中獲取自定義授權標頭](http://stackoverflow.com/questions/2902621/fetching-custom-authorization-header-from-incoming-php-request/16311684 #16311684) – chirag
@chirag,謝謝你的回覆,但我也嘗試過這種方法。沒有任何結果 – Amiyar
任何人都可以幫我解決這個問題嗎? – Amiyar