我正在尝试从我正在开发的自定义 API 中获取不记名令牌。当我请求 API 时,我使用以下信息设置此标头信息:
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer 1234567890abcdefghijklmnopqrstuvwkyz'
Run Code Online (Sandbox Code Playgroud)
我可以通过 Chrome 查看我请求的标头,它向我显示:
Accept: application/json
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,fr-CA;q=0.8,fr;q=0.7
Authorization: Bearer 1234567890abcdefghijklmnopqrstuvwkyz
Connection: keep-alive
Content-Type: application/json
Host: api.localhost.dev
Origin: http://localhost:8100
Referer: http://localhost:8100
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
$_SERVER['HTTP_AUTHORIZATION']但是,当我尝试通过or变量获取标头值时$_SERVER['Authorization'],没有任何信息。
编辑:
我也尝试将这些添加到我的中.htaccess,但没有成功:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
和
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
和
CGIPassAuth On
Run Code Online (Sandbox Code Playgroud)
这是我的服务器设置的快速概述:
PHP 7.3.11 CGI/FastCGI
Server version: Apache/2.4.7 (Ubuntu)
Linux 4.9.159-vs2.3.9.8-vs+ x86_64
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以获取'Authorization': 'Bearer 1234567890abcdefghijklmnopqrstuvwkyz'通过标头发送的信息?
查看https://www.php.net/manual/en/function.getallheaders.php
返回:当前请求中所有 HTTP 标头的关联数组,如果失败则返回 FALSE。
使用getallheaders(),您可以检索请求标头,并通过关联数组访问它们:
<?php
$headers = getallheaders();
if (in_array('Authorization', $headers)) {
echo $headers['Authorization'];
}
Run Code Online (Sandbox Code Playgroud)
您还可以将以下内容添加到您的.htaccess文件中:
RewriteEngine On
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Run Code Online (Sandbox Code Playgroud)
然后,您应该可以使用以下内容:
$_SERVER['HTTP_AUTHORIZATION'];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7210 次 |
| 最近记录: |