2017-12-01 3 views
0

저는 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" 
}, 
+0

몇 가지 코드를 제공해 주시겠습니까? – lagbox

+0

게시물에 추가되었습니다. 감사합니다 :) –

+0

당신은 미들웨어없이 그것을 시도 했습니까? –

답변

0

$request->bearerToken()는 요청 헤더에서 인증 무기명 토큰을 끌어 것입니다.

$request->header() 모든 헤더를 가져 오려면.

$request->header('name', 'default') 헤더로 이름을 지정하십시오.

$request->headersHeaderBag을 얻으려면

왜이 시점에서 일이 비어 있는지 확실하지 않습니다. 버전 정보가 도움이 될 수 있습니다.

+0

님이 composer.json added tab을 추가했습니다. –

0

아마 헤더가 아파치에의 nginx에서 요청을 리디렉션하는 동안 분실 헤더

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

로 JWT 토큰을 설정합니다. 서버 구성을 확인하십시오.

+0

그것에 대해 생각해보십시오. 그래서 컨트롤러와 jwt 미들웨어를 사용할 때 모두 괜찮아 졌다고 썼습니다. 토큰이 있습니다. –

관련 문제