Промежуточное ПО Laravel — пустой запрос

Я использую laravel 5.5 и tymon / jwt-auth в качестве поставщика услуг jwt.
Когда я использую фасад JWTAuth с контроллеров — все идет хорошо — я получаю токен и могу манипулировать любым предметом.

Когда я пытаюсь использовать фасад JWTAuth внутри пользовательского промежуточного программного обеспечения, которое я создал — заголовки исчезли, а запрос пуст.
Я уверен, что это не проблема в промежуточном программном обеспечении laravel, поскольку промежуточное программное обеспечение JWT может получить маркер по заголовкам.

Я использую обратный прокси-сервер nginx через порт 80, который перенаправляет на сервер apache через порт 8080, и apache запускает проект laravel.

Предложение кого-нибудь?

Код:

api.php

Route::get('organizations', 'OrganizationController@index')->middleware('org');

Kernel.php

'org' => \App\Http\Middleware\OrganizationMiddleware::class,

OrganizationMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;
use JWTAuth;

class OrganizationMiddleware
{
/**
* Handle an incoming request.
*
* @param  \Illuminate\Http\Request  $request
* @param  \Closure  $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$token = JWTAuth::getToken();
return response()->json(['token' => $token], 200);

//       return $next($request);
}
}

Ни одна из моих попыток не идет хорошо. Промежуточное программное обеспечение отвечает, но запрос полностью пуст. Поэтому я не могу получить заголовки или токен, или любой другой параметр.
Очень странно. Протестировано также локально, только на apache и с соответствующим файлом .htaccess. Также включен CORS на всякий случай.
Токен полностью пуст.

ОБНОВИТЬ:

composer.json

"require": {
"php": ">=5.6.4",
"aws/aws-sdk-php-laravel": "~3.0",
"illuminate/contracts": "^5.5",
"laravel/framework": "5.5.*",
"laravel/tinker": "~1.0",
"spatie/laravel-fractal": "^5.2",
"tymon/jwt-auth": "0.5.11"},

0

Решение

$request->bearerToken() вытянет токен Авторизационного канала из заголовков запроса.

$request->header() если вы хотите получить все заголовки.

$request->header('name', 'default') чтобы получить заголовок по имени.

$request->headers чтобы получить HeaderBag,

Не уверен, почему вещи будут пустыми в этот момент. Информация о версии может помочь.

0

Другие решения

Установите свой токен JWT в заголовок

$request->headers->set('Authorization', 'Bearer' . $token);

Возможно, заголовки теряются при перенаправлении запроса с nginx на apache. Проверьте настройки вашего сервера.

0

По вопросам рекламы [email protected]