Apache2 过滤 Auth 标头

Apache2 过滤 Auth 标头

我在一台 Ubuntu 机器上运行 PHP 5.3.6 作为 Apache 2 模块(phpinfo ServerAPI 显示“Apache 2.0 Filter”)。我有一个 PHP 应用程序,我想让 iOS 客户端通过 https 向它发送信息。具体来说,我想在 Authorization 标头中发送 oAuth2 令牌,使用:

Authorization: Bearer XXXXXXXXX

XXXXXXXXX 是 oAuth2 令牌的 Base64 编码。

请求已从 iOS 客户端正确发送(我可以使用我的授权字符串查看请求标头),并且我可以通过执行以下命令在请求到达服务器时查看它获取所有标题

我的问题是我不知道我的概念是否正确。当我使用基本身份验证时,我可以通过 $_SERVER['PHP_AUTH_USER"] 和 $_SERVER['PHP_AUTH_PW'] 获取用户和密码。但在这里,我得到的只是 getallheaders 返回的数组的原始“授权”值。听起来很“肮脏”。

在我的服务器中还有其他获取令牌的方法吗?我只想将其存储在数据库中,然后稍后使用它代表我的客户向令牌提供程序发出 API 调用。

提前致以最诚挚的谢意

答案1

不幸的是,PHP 试图变得智能并尝试解析 Authorization-Header。

您可以使用它getallheaders()来获取原始标头数据,但这在某些 SAPI 中不可用(就我而言,它在 PHP-FPM 中不可用)。

我认为唯一能获取数据的方法是在服务器端创建另一个变量并将其传递(如 X-Authorization-Copy 等)。但这很大程度上取决于服务器。

相关内容