основно удостоверяване чрез url

Уча се как да пиша api за почивка и мога да се обърна към него от командния ред и да получа очаквания отговор със следния ред

curl -v -u username:pass -X GET http://api.mysite.com/user/1

Но когато се опитам да осъществя достъп до него през браузъра, потребителското име и паролата за основното удостоверяване не се получават от моя API. Това не работи за мен

http://username:[email protected]/user/1

Знам, че моят API не получава потребителското име и паролата, защото проверявам $_SERVER['PHP_AUTH_USER'] и той е празен.

Защо получавам идентификационните данни чрез curl, но не и през браузъра?


person Gilberg    schedule 21.01.2014    source източник
comment
помощ serverfault.com/questions/371907/   -  person OkieOth    schedule 21.01.2014
comment
Този начин на предаване на идентификационни данни никога не е бил „официален“ за HTTP URL адреси и докато браузърите го поддържаха по-рано, това беше променено преди няколко години от съображения за сигурност. Днес някои браузъри го позволяват само след като попитат потребителя дали иска да изпрати тези идентификационни данни, а други го позволяват само когато е изрично зададено в тяхната конфигурация. (IIRC за IE дори се нуждае от запис в системния регистър.)   -  person CBroe    schedule 21.01.2014
comment
Някаква идея как да го направя с Chrome?   -  person Gilberg    schedule 21.01.2014


Отговори (1)


Не трябва да предавате идентификационни данни в URL, този метод е остарял в много съвременни браузъри от съображения за сигурност, той също никога не е бил официален. Ако търсите по-удобен начин за разработване/тестване/работа с вашия API, бих препоръчал да инсталирате това разширение за Chrome: HTTP клиент за разработка

След това просто задайте правилно Authorization HTTP хедъра. Wikipedia е вашият приятел, който отговаря как да направите това: Удостоверяване за основен достъп - страна на клиента

person Michal Gasek    schedule 21.01.2014