我使用POSTMAN将一个GET请求发送到包含授权的头部api中。
我知道数据头可以工作,因为如果不这样做,路由将返回一个401错误。
我想得到这样的授权头:
$access_token = Request::header('Authorization');但注意到它返回NULL。
因此,我试图用以下方法捕获值:
die(var_dump(Request::header()));并注意到它不包含任何授权头。只需托管cookie头。
更新
应该得到Authorization: Bearer ACCESS TOKEN
发布于 2014-01-01 02:35:38
你用了什么邮递员版本?
您是否在本地计算机或托管服务器上,有些托管公司不允许授权头。
.htaccess改性
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]发布于 2015-01-20 13:33:19
dschniepp的答案是正确的,但我也有问题。你必须做两件事:
在第一点中,您必须检查"mod_rewrite“模块是否可以通过php_info函数在一个单独的php文件中使用。如果它可用,您必须激活它,这取决于您的Then服务器的配置,在我的氮气盒中,我将这些行添加到我的httpd.conf文件中:
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>或者您也可以在.htaccess文件中激活模块:
RewriteEngine On然后,在同一个位于laravel应用程序根目录的公用文件夹中的.htaccess文件中,您必须添加以下几行:
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]这些台词对我有用。您的.htaccess文件应该如下所示:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>就是这样,在请求::header ()数组中应该有授权头。仅仅为了澄清这一点,这是Apache的问题,而不是Laravel本身的问题。
发布于 2017-09-28 11:44:30
在Laravel5.5中,您可以使用apache_request_headers读取牧羊人,只需在控制器中按以下几行读取
$headers = apache_request_headers();
dd($headers['Authorization']);确保在控制器中添加了“使用照明\Http\Request;”
https://stackoverflow.com/questions/20853604
复制相似问题