Я реализовал токены JWT в PHP/Phalcon, для которых вам нужно отправить токен JWT в заголовок авторизации. Я посылаю заголовок следующим образом:PHP-авторизация: заголовок несущей продолжает меняться имена
$.ajax({
url: URL,
dataType: 'text',
method: 'post',
data: { "data": "values" },
success: function(data) {
return console.log("Returned data: ", data);
},
beforeSend: function(xhr, settings) {
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
});
Чтобы прочитать заголовок, я следующее:
$auth_header = $request->getHeader ('Authorization');
И это все. Я смог успешно прочитать заголовок, и жизнь продолжалась.
Через несколько дней мой код не смог прочитать заголовок. Значение $ auth_header было пустым. После того, как какой-то диагноз, я обнаружил, что заголовок должен был быть следующим:
$auth_header = $request->getHeader ('REDIRECT_HTTP_AUTHORIZATION');
Я добавил оба параметра в мой код так, что оба заголовки могут быть считаны, в зависимости от того, который на самом деле пришел. Через несколько дней я добавил третий:
$auth_header = $request->getHeader ('AUTHORIZATION');
На этот раз слово должно было быть весь капитал, или вообще ничего не будет читать.
Так что же теперь? Будет ли четвертое имя через несколько дней? Как мне продолжить? Я хотел бы указать, что ничего не происходит на PHP 5.6. Это происходит только на сервере dev, который является PHP 5.3. Это известная проблема? В чем причина?
Мой .htaccess файл:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
</IfModule>
Это тоже работает, по крайней мере, на данный момент, но он по-прежнему не скажи мне, почему это происходит. –
Я думаю, вы можете var_dump $ _SERVER и наблюдать индексы –