La posibilidad de exponer headers http con php se puede volver una necesidad, sobre todo cuando necesitemos crear respuestas http las cuales contengan headers que tengan que ser capturados en el cliente, por ejemplo utilizando Angular 2.

La forma más sencilla de entender este tutorial pasa por ver las siguiente imágenes, las cuales tratan un ejemplo de api rest con Laravel 5 y un cliente con Angular 2.

headers http
Si te fijas, en la petición (Request) nosotros enviamos un header llamado Authorization, el cual no es un header común, de la misma forma, en la respuesta del servidor (Response) lo enviamos de vuelta con un nuevo valor.

Si realizamos el ejemplo con Angular 2 y accedemos al header podremos ver que ese header no aparece, vamos a verlo.

Puedes ver que el header Authorization no está apareciendo, ¡y eso que nosotros lo vemos en la network del navegador!.

Exponer headers http con php

Para poder exponer headers http en nuestras respuestas utilizando php deberíamos hacer lo siguiente.

Exponer headers http con .htaccess

Si en cambio trabajas con apache y prefieres utilizar un archivo .htaccess puedes añadir lo siguiente.

Exponer headers http con Laravel 5

Si estás utilizando este package de Laravel 5 y quieres exponer el header Authorization simplemente abre el archivo app/config/cors.php y modifica la key exposedHeaders.

Sea cual sea el caso, si ahora realizas la misma prueba con Angular 2 verás que la respuesta es distinta, ahora sí somos capaces de interceptar el header Authorization.

Espero que te haya sido útil y si es así te invito a que compartas el post en las redes sociales.