首页 文章

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

提问于
浏览
0

我使用laravel与android和每当laravel触发401错误我想附加到401错误自定义 Headers

WWW-Authenticate: xBasic realm=32334

每当401响应返回到android我得到

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

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

所以我使用的默认护照 oauth/token 路由是在authservice provider中设置的路由

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

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

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

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

     }
 }

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

1 回答

  • 1
    public function handle($request, Closure $next)
    {
        $response = $next($request);
    
        if ($response->status() == 401) {
             $response->header('WWW-Authenticate', 'xBasic realm=32334')
        }
    
        return $response;
    }
    

相关问题