Я пытаюсь реализовать аутентификацию в 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