将响应标头添加到laravel 401 api响应中

时间:2018-03-27 07:13:23

标签: php laravel

我正在使用带有android的laravel,并且只要在laravel中触发401错误,我想附加到401错误的自定义标题

WWW-Authenticate: xBasic realm=32334

每当401响应返回到android i get

com.android.volley.NoConnectionError: java.io.IOException: No authentication challenges found

所以在搜索之后,我发现问题是由于我需要在给出la lavel的响应中添加标题

所以使用默认护照oauth/token路由在authservice provider中设置哪些路由

 public function boot()
  {
     $this->registerPolicies();
     Route::group(['middleware'=>'appconnection'], function(){
         Passport::routes();
     });
  }

从上面我已经添加了一个appconnection中间件到护照路由现在我想处理响应以检查是否有401返回并添加自定义标题

所以在我的中间件中我被困在添加标题

class AppConnectionMiddleware
 {
   public function handle($request, Closure $next)
     {
       $returned = $next($request);
         //check if $returned has a 401 status response 
         //am stuck here

     }
 }

那么我如何操纵响应以包含自定义响应标头

1 个答案:

答案 0 :(得分:1)

public function handle($request, Closure $next)
{
    $response = $next($request);

    if ($response->status() == 401) {
         $response->header('WWW-Authenticate', 'xBasic realm=32334')
    }

    return $response;
}