Я использую JWT (https://github.com/tymondesigns/jwt-auth) генерировать токены сессии в моем API.
Я сделал все необходимые настройки для работы в качестве авторской документации.
После подключения сеанса я использую URL для возврата данных моих категорий. Когда я передаю токен непосредственно в URL, он работает. Следующее:
http://api.domain.com/categories?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
Только мне нужно передать токен в моем запросе к заголовку, используя Authentication Bearer. Но не работает. Посмотрите, как я прохожу:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY
Что может быть не так?
В документации JWT упоминается использование формы, которую я провел выше. Но не работает.
Если вы используете Apache, заголовки, вероятно, не проходят, из-за эта известная проблема в пределах Symfony
Вам нужно будет добавить следующее на ваш виртуальный хост, если это так:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Пожалуйста, убедитесь, что у вас есть строка ниже в вашем коде серверной части
Это для PHP.
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization');
Обратите внимание, что в приведенной выше строке мы разрешаем заголовок «Авторизация».
Как только у вас есть строка выше в вашем коде на стороне сервера, вы можете использовать функцию ниже (если вы кодируете в php), чтобы получить все заголовки в массиве.
getallheaders();