PHP + Apache - невозможно получить getHeader («Авторизация») - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь реализовать аутентификацию в PHP API, но всякий раз, когда я пытаюсь получить

$request->getHeader('Authorization');

всегда возвращается пустым.

Я пробовал несколько решений, таких как редактирование файла .htaccess внутри проекта:

RewriteEngine On
CGIPassAuth On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

Но безуспешно.

Это класс промежуточного программного обеспечения:

<?php

namespace App\Middleware;

use App\Models\User;

class Authentication{

public function __invoke($request, $response, $next){

    $auth = $request->getHeader('Authorization');

    $_apikey = $auth[0];
    $apikey = substr($_apikey, strpos($_apikey,'')+1);

    $user = new User();

    if(!$user->auth($apikey)){
        return $response->withStatus(401);
    }

    $response = $next($request,$response);

    return $response;  
  }
}

Единственный вывод с сервера заключается в том, что $ auth является пустым массивом.

[Ср. 7 ноября 09:39:09 2018] Примечание PHP: Неопределенное смещение: 0 в /var/www/html/slim_app/app/Middleware/Authentication.php в строке 13

[Ср. 7 ноября 09:39:09 2018] PHP Предупреждение: strpos (): пустая стрелка в /var/www/html/slim_app/app/Middleware/Authentication.php в строке 14

...