我正尝试在 PHP 中创建一个 REST API,并且我想实现一个类似于 Amazon 的 S3 方法的身份验证方案。这涉及在请求中设置自定义“授权” header 。
我原以为我可以使用 $_SERVER['HTTP_AUTHORIZATION'] 访问 header ,但在 var_dump($_SERVER) 中找不到它。 apache_request_headers() 函数可以解决我的问题,但我的主机将 PHP 实现为 CGI,因此它不可用。
还有其他方法可以让我在 PHP 中访问完整的请求 header 吗?
最佳答案
你需要做一些 mod_rewrite
魔法来让你的 header 通过 CGI 障碍,就像这样:
RewriteEngine on
RewriteRule .? - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
<?php
$auth = $_SERVER['HTTP_AUTHORIZATION'];
?>
请注意,如果您将 mod_rewrite
用于其他目的,它最终可能会成为 $_SERVER['REDIRECT_HTTP_AUTHORIZATION']
。
关于php - 如何访问未出现在 $_SERVER 中的请求 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827060/