Назад | Перейти на главную страницу

Apache2 фильтрует заголовки Auth

Я запускаю PHP 5.3.6 как модуль Apache 2 (phpinfo ServerAPI говорит «Фильтр Apache 2.0») на машине Ubuntu. У меня есть приложение PHP, и я хочу, чтобы клиент iOS отправлял ему информацию по https. Конкретно, я хочу отправить токен oAuth2 в заголовке авторизации, используя:

Authorization: Bearer XXXXXXXXX

Являясь XXXXXXXXX кодировкой Base64 для токена oAuth2.

Запрос отправляется клиентом iOS правильно (я вижу заголовок запроса с моей строкой авторизации), и я могу видеть его, когда он достигает сервера, выполнив getallheaders.

Моя проблема в том, что я не знаю, прав ли я концептуально. Когда я использую обычную аутентификацию, я могу получить пользователя и пароль с помощью $ _SERVER ['PHP_AUTH_USER "] и $ _SERVER [' PHP_AUTH_PW ']. Но здесь я получаю только необработанное значение« авторизации »массива, которое возвращает getallheaders. Для меня это звучит «грязно».

Есть ли другой способ получить токен на моем сервере? Я просто хочу сохранить его в базе данных и использовать позже для вызовов API поставщику токенов от имени моих клиентов.

Большое спасибо заранее и с наилучшими пожеланиями

К сожалению, PHP пытается быть умным и пытается анализировать заголовок авторизации.

Ты можешь использовать getallheaders() чтобы получить необработанные данные заголовка, но это недоступно в некоторых SAPI (в моем случае это недоступно в PHP-FPM).

Единственный способ добраться до данных, который я вижу, - это создать другую переменную на стороне сервера и передать ее (например, X-Authorization-Copy или что-то еще). Однако это в значительной степени зависит от сервера.