簡體   English   中英

PHP var_dump() 上的授權標頭為空

[英]Authorization header is empty on PHP var_dump()

我正在使用以下請求標頭向服務器發送標頭:

Host: xx.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: xx.com
Authorization: Bearer mytoken1234
X-Requested-With: XMLHttpRequest
Connection: keep-alive

在我的 php 文件中,我嘗試使用 var_dump() 查看標題,它顯示以下內容:

["HTTP_ACCEPT"]=>
  string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
 ["HTTP_ACCEPT_ENCODING"]=>
  string(13) "gzip, deflate"
  ["HTTP_ACCEPT_LANGUAGE"]=>
  string(23) "en-US,en;q=0.8,fi;q=0.6"
  ["HTTP_AUTHORIZATION"]=>
  string(0) ""
  ["HTTP_CACHE_CONTROL"]=>
  string(9) "max-age=0"
  ["HTTP_CONNECTION"]=>
  string(10) "keep-alive"
  ["HTTP_COOKIE"]=>
  string(71) "cpsession=scocta5%3aBcbKZGvPoUCv2Yhb%2c2dc8a5c3bd6713b6ab029f16a46980e7"

我嘗試將以下幾行添加到我的 .htaccess 中:

   SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

或者

   RewriteEngine On
   RewriteCond %{HTTP:Authorization} ^(.*)
   RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

如果沒有這些設置,授權標頭根本不會顯示在 var_dump() 上,但現在它只是 string(0) ""。 為什么我的服務器沒有獲取 Authorization 標頭內容?

您需要將此代碼添加到您的.htaccess

RewriteEngine On
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

然后您就可以使用$_SERVER['HTTP_AUTHORIZATION']獲取授權碼


請參閱原始帖子: https : //stackoverflow.com/a/46323802/9492722以獲取更多信息。

您可以使用apache_request_headers函數:

$headers = apache_request_headers();
var_dump($headers['Authorization']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM