如何从页眉中获取授权?

时间:2016-09-20 10:45:56

标签: php apache header http-headers

尝试从页眉中获取授权。我尝试过在这个网站上找到的一些解决方案,但它没有得到。下面是我的示例代码

--enable-gcm

是否可以从标头中获取授权?或任何其他方法来获取它?

1 个答案:

答案 0 :(得分:1)

我会添加评论,但声誉不允许。

我很久以前就遇到过这个问题,并且认为它与PHP / Apache配置有关。授权标头在某些PHP / Apache配置中访问您的应用程序之前会被剥离。解决方案是添加重写到.htaccess(或虚拟服务器)。

我不记得我的决议的细节,但是将其添加到.htaccess可能会有所帮助:

RModel.TAX

我有另一个使用它的应用程序(Symfony框架):

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

您是否也尝试过基本授权 - 看看是否有效?创建一个这样的标题:

RewriteEngine On    
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

如果你使用上面的代码,$ auth_header将是“Basic dXNlcm5hbWU6cGFzc3dvcmQ =”

并且您的完整标题将是'授权:基本dXNlcm5hbWU6cGFzc3dvcmQ ='

如果你在标题中发送它,在PHP中你可以使用:

    $username = 'username';
    $password = 'password';

    $auth = base64_encode($username.':'.$password);
    $auth_header = 'Basic '.$auth;

这至少可以指出你正确的方向。

我看到的另一件事是,上面的测试代码对我来说就像是在设置响应头,但var_dumping请求头?我假设你的测试涉及一个单独的文件/应用程序/浏览器发送你试图转储的真实请求。

我还发现,在使用基本授权时,浏览器可能会发送一个OPTIONS转航前请求,在发送后续授权请求之前,也可能需要在服务器端处理。