Intereting Posts

Как читать параметры запроса OAuth с помощью PHP?

Я пытаюсь подключить приложение iPhone к PHP API с использованием двухстороннего OAuth в качестве механизма аутентификации. Я использую библиотеки PHP и Objective-C 2.0 с http://code.google.com/p/oauth/ . Проблема в том, что когда я пытаюсь выполнить запрос GET с Objective-C, он не включает параметры OAuth в URI запроса, как это делает библиотека PHP при выдаче запроса OAuth GET:

http://www.mysite.com/oauth/index.php?oauth_consumer_key=key&oauth_nonce=XXXXXXXX&oauth_signature=XXXXXXXXXXX%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1309863754&oauth_version=1.0

Вместо этого он помещает параметры OAuth в заголовок авторизации:

 Authorization: OAuth realm="", oauth_consumer_key="XXXXX", oauth_token="XXXX-XXXX", oauth_signature_method="HMAC-SHA1", oauth_signature="XXXXXXXX", oauth_timestamp="1309863855", oauth_nonce="XXXX-XXX-XX-XX-XXXXXXX", oauth_version="1.0" 

Я полагаю, что оба способа одинаково справедливы для спецификаций OAuth, верно?

Каким образом я могу прочитать заголовок авторизации с PHP?

Я полагаю, что оба способа одинаково справедливы для спецификаций OAuth, верно?

Да, верно.

Каким образом я могу прочитать заголовок авторизации с PHP?

Заголовки запросов в PHP хранятся в суперглобальном массиве $_SERVER , каждый заголовок как собственная запись: $_SERVER['HTTP_AUTHORIZATION'] скорее всего, в вашем случае, просто сделайте

 var_dump($_SERVER); 

и ищите информацию. Подробная информация о том, как PHP работает с HTTP-запросом .

Недопустимый заголовок авторизации в PHP

К сожалению, заголовок Authorization фильтруется PHP (?), Поэтому он не является частью $_SERVER .

Обход проблемы: apache_request_headers ()

При использовании PHP в качестве модуля Apache обходным apache_request_headers() является использование функции apache_request_headers() для извлечения всех заголовков запросов.

Обход проблемы: mod_rewrite

Для F / CGI обходным путем является установка заголовка Authorization с Mod_Rewrite в переменную среды, которая имитирует схему PHP, преобразующую заголовки HTTP-запросов:

 RewriteEngine on RewriteCond %{HTTP:Authorization} ^(.*)$ [NC] RewriteRule .* - [E=HTTP_AUTHORIZATION:%1] 

Решение mod_rewrite должно работать для PHP, работающего с mod_php. Кончик шляпы Джон Найландер.