Comment puis-je accéder aux en-têtes de requête qui n'apparaissent pas dans $ _SERVER?

StackOverflow https://stackoverflow.com/questions/827060

  •  05-07-2019
  •  | 
  •  

Question

J'essaie de créer une API REST en PHP et j'aimerais implémenter un schéma d'authentification similaire à l'approche S3 d'Amazon. Cela implique de définir un en-tête "Autorisation" personnalisé dans la demande.

J'avais pensé pouvoir accéder à l'en-tête avec $ _SERVER ['HTTP_AUTHORIZATION'], mais il est introuvable dans var_dump ($ _ SERVER). La fonction apache_request_headers () résoudrait mon problème, mais mon hôte implémente PHP en tant que CGI, il n'est donc pas disponible.

Existe-t-il un autre moyen d'accéder aux en-têtes de requête complets en PHP?

Était-ce utile?

La solution

Vous aurez besoin de faire de la magie mod_rewrite pour obtenir vos en-têtes au-delà de la barrière CGI, comme suit:

RewriteEngine on
RewriteRule .? - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

<?php
    $auth = 

Vous aurez besoin de faire de la magie mod_rewrite pour obtenir vos en-têtes au-delà de la barrière CGI, comme suit:

<*>

Notez que si vous utilisez mod_rewrite à d'autres fins, il pourrait s'agir de $ _ SERVER ['REDIRECT_HTTP_AUTHORIZATION'] .

SERVER['HTTP_AUTHORIZATION']; ?>

Notez que si vous utilisez mod_rewrite à d'autres fins, il pourrait s'agir de $ _ SERVER ['REDIRECT_HTTP_AUTHORIZATION'] .

Autres conseils

Essayez

Essayez

<*>

Lorsque vous utilisez une interface CGI au lieu de l'interface Apache Module, les en-têtes HTTP doivent être disponibles en tant que variables d'environnement.

ENV['HTTP_AUTHORIZATION']

Lorsque vous utilisez une interface CGI au lieu de l'interface Apache Module, les en-têtes HTTP doivent être disponibles en tant que variables d'environnement.

Il existe une fantastique extension PECL permettant toutes sortes d’accès HTTP. PECL_HTTP et plus précisément http://php.net/http et http://php.net/manual/en/function.http-get-request-headers.php .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top