2017-06-26 11 views
0

ミドルウェアを使用してコントローラに渡す前にリクエストのヘッダを変更しようとしていますが、コントローラでコードを実行すると$next($request)と表示されます。ヘッダーを変更して、更新された要求をコントローラに送信する方法はありますか?コントローラに渡す前にLaravel Middlewareのヘッダを変更する

マイミドルウェア:

class JWTAuthenticator 
{ 

public function handle($request, Closure $next) 
{ 
    $token =JWTAuth::getToken(); 
    $my_new_token = JWTAuth::refresh($token); 
    //it runs here 
    $response = $next($request); 

    //it runs this part after executing the controller 
    $response->header('Authorization','Bearer '.$my_new_token); 
    return $response; 
} 

これは、ミドルウェアは、私のルートに割り当てられている方法です。

Route::get('/{user}', 'v1\[email protected]')->middleware('jwt_auth'); 

答えて

1

そのように要求が出席した後、あなたが$response->header('Authorization','Bearer '.$my_new_token);文をexcecutingています。 コードを次のように変更します。

class JWTAuthenticator 
{ 

public function handle($request, Closure $next) 
{ 
    $token =JWTAuth::getToken(); 
    $my_new_token = JWTAuth::refresh($token); 

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

    return $next($request); 
} 
関連する問題