代码之家  ›  专栏  ›  技术社区  ›  Hirad Roshandel

Laravel中间件在传递给控制器之前更改标头

  •  1
  • Hirad Roshandel  · 技术社区  · 7 年前

    $next($request) 在我的控制器中执行代码。有没有办法更改标头,然后将更新的请求发送给我的控制器?

    我的中间件:

    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\UserController@find')->middleware('jwt_auth');
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   fnocetti    7 年前

    这样你就超越了 $response->header('Authorization','Bearer '.$my_new_token);

    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);
    }