Получение пользовательского заголовка авторизации из входящего запроса PHP

Поэтому я пытаюсь разобрать входящий запрос в PHP, который имеет следующий набор заголовков:

Authorization: Custom Username 

Простой вопрос: как, на мой взгляд, я могу это понять? Если это была Authorization: Basic , я мог бы получить имя пользователя из $_SERVER["PHP_AUTH_USER"] . Если это было X-Custom-Authorization: Username , я мог бы получить имя пользователя из $_SERVER["HTTP_X_CUSTOM_AUTHORIZATION"] . Но ни один из них не задан пользовательской авторизацией, var_dump($_SERVER) указывает на заголовок (в частности, AUTH_TYPE отсутствует), а функции PHP5, такие как get_headers() работают только с ответами на исходящие запросы. Я запускаю PHP 5 на Apache с установленной установкой Ubuntu.

Solutions Collecting From Web of "Получение пользовательского заголовка авторизации из входящего запроса PHP"

Если вы собираетесь использовать Apache, возможно, вам захочется взглянуть на apache_request_headers() .

Для аутентификации на токенах:

  $token = null; $headers = apache_request_headers(); if(isset($headers['Authorization'])){ $matches = array(); preg_match('/Token token="(.*)"/', $headers['Authorization'], $matches); if(isset($matches[1])){ $token = $matches[1]; } } 

Для фона, почему Apache отфильтровывает заголовок Authorization : https://stackoverflow.com/a/17490827

Решения, в зависимости от того, какой модуль Apache используется для передачи запроса в приложение:

mod_wsgi, mod_fcgid:

CGI:

Другие хаки – массирование заголовков в этом вопросе:

  • Отсутствует заголовок заголовка запроса. Заголовок авторизации в Symfony 2?

  • Apache 2.4 + PHP-FPM и заголовки авторизации

Добавьте этот код в свой .htaccess

 RewriteEngine On RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

Передайте свой заголовок, как Authorization: {auth_code} и, наконец, вы получите код авторизации с помощью $_SERVER['HTTP_AUTHORIZATION']