저는 jwt 서비스 제공자로 laravel 5.5 및 tymon/jwt-auth를 사용하고 있습니다. 컨트롤러에서 JWTAuth 파사드를 사용할 때 - 모두 정상적으로 작동합니다. 토큰을 얻었고 어떤 것을 조작 할 수 있습니다.Laravel middleware - empty request
만든 맞춤형 미들웨어에서 JWTAuth 외관을 사용하려고 할 때 헤더가 사라지고 요청이 비어 있습니다. JWT의 미들웨어가 헤더로 토큰을 얻을 수 있기 때문에 laravel의 미들웨어에 문제가없는 것은 확실합니다.
포트 80에서 아파치 서버로 리디렉션되는 nginx 리버스 프록시를 실행 중이며 apache는 laravel 프로젝트를 실행합니다.
제안 누군가?
코드 : 내 시도의
api.php
Route::get('organizations', '[email protected]')->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);
}
}
비는 좋은 간다. 미들웨어가 응답하지만 요청은 완전히 비어 있습니다. 따라서 헤더 나 토큰 또는 다른 매개 변수를 가져올 수 없습니다. 정말 이상합니다. 로컬 에서뿐만 아니라 아파치와 적절한 .htaccess 파일로 테스트되었습니다. 또한 경우에 따라 CORS를 사용할 수 있습니다. 토큰이 완전히 비어 있습니다.
UPDATE :
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"
},
몇 가지 코드를 제공해 주시겠습니까? – lagbox
게시물에 추가되었습니다. 감사합니다 :) –
당신은 미들웨어없이 그것을 시도 했습니까? –