maj*_*rif 27 php oauth-2.0 laravel
我正在使用POSTMAN通过包含授权的标头向api发送GET请求.
我知道数据头是有效的,因为如果它没有路由返回401错误.
我想获得Authorization标头,如下所示:
$access_token = Request::header('Authorization');
Run Code Online (Sandbox Code Playgroud)
但是注意到它返回NULL.
所以我尝试用以下方法捕获值:
die(var_dump(Request::header()));
Run Code Online (Sandbox Code Playgroud)
并注意到它不包含任何Authorization标头.只需托管cookie标头.
更新
应得 Authorization: Bearer ACCESS TOKEN
dsc*_*epp 48
你使用什么POSTMAN版本?
您是在本地计算机还是托管服务器上,某些托管公司不允许使用AUTHORIZATION HEADER.
.htaccess修改
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Run Code Online (Sandbox Code Playgroud)
来自dschniepp的答案是对的,但我也有这个问题.你必须做两件事:
在第一点,你必须通过php_info函数检查"mod_rewrite"模块是否可用,在一个单独的php文件中.然后,如果它可用,你必须激活它,这取决于你的网络服务器的配置,在我的Nitrous框中,我将这些行添加到我的httpd.conf文件中:
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
Run Code Online (Sandbox Code Playgroud)
或者您也可以激活.htaccess文件中的模块:
RewriteEngine On
Run Code Online (Sandbox Code Playgroud)
然后在位于laravel应用程序根目录的公共文件夹中的同一.htaccess文件中,您必须添加以下行:
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Run Code Online (Sandbox Code Playgroud)
这些线路对我有用.您的.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>
Run Code Online (Sandbox Code Playgroud)
就是这样,你应该在Request :: header()数组中拥有Authorization头.只是为了澄清这些是Apache的问题,而不是Laravel本身.
| 归档时间: |
|
| 查看次数: |
44709 次 |
| 最近记录: |