Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

291
Visualizações
cakephp3: no se puede obtener el encabezado de autorización dentro del controlador

Estoy desarrollando una API usando el framework CakePHP 3. Ahora estoy enviando una solicitud GET del cliente POSTMAN. El usuario pasará una clave API en el encabezado. ingrese la descripción de la imagen aquí

Quiero buscar este encabezado en mi función de controlador.

Así es como se ve mi controlador

 namespace Api\Controller; use Cake\Auth\DefaultPasswordHasher; use Api\Controller\AppController; use Cake\Cache\Cache; use Cake\Http\ServerRequest; class ApiController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); } public function myinfo() { if($this->request->is('get')) { $key = $this->request->getHeaderLine('Authorization'); $this->set('key', $key); } $this->set('_serialize', ['key']); } }

El error que recibo es: HeaderLine is not a function

También probé algunas opciones más:

 $acceptHeader = $this->request->getHeader('Authorization');

pero esto también arrojó un error similar. El encabezado no es una función.

Referencia: Enlace

Versión de CakePHP: 3.3.5

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Como dijo @ndm en los comentarios de OP, el último ejemplo en el documento vinculado debería resolver su problema. Está utilizando una versión anterior a la 3.4, por lo que debe utilizar:

 // Prior to 3.4.0 $key = $this->request->header('Authorization');
about 4 years ago · Santiago Trujillo Relatório

0

Consulte el documento para leer el encabezado HTTP

Here mencionó que "Le permite acceder a cualquiera de los encabezados HTTP_* que se usaron para la solicitud". Significa que solo lee encabezados http como

  • Solicitud HTTP
  • Anfitrión
  • Conexión
  • Solicitudes inseguras de actualización
  • Agente de usuario
  • Aceptar
  • Aceptar-Codificación
  • Aceptar-Idioma

También mencionó que "Si bien algunas instalaciones de apache no hacen accesible el encabezado de Autorización, CakePHP lo hará disponible a través de métodos específicos de apache según sea necesario".

Entonces para la solución

Todos tienen diferentes configuraciones oscuras que puede modificar para anular este comportamiento, pero deberá determinar exactamente qué módulo tiene la culpa.

Puede solucionar este problema pasando el encabezado directamente a PHP a través de env:

 SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

Consulte también: Zend Server Windows: el encabezado de autorización no se pasa al script PHP

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda