Я запускаю 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 или что-то еще). Однако это в значительной степени зависит от сервера.