【问题标题】:Adding response headers to laravel 401 api response将响应标头添加到 laravel 401 api 响应
【发布时间】:2018-03-27 18:01:38
【问题描述】:

我将 laravel 与 android 一起使用,每当在 laravel 中触发 401 错误时,我想在 401 错误上附加一个自定义标头

WWW-Authenticate: xBasic realm=32334

每当 401 响应返回到 android 时,我都会得到 ​​p>

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

所以在 aresearch 之后我发现问题是由于我需要在给定 i laravel 的响应中添加标头

所以我使用默认护照oauth/token 路由,这些路由是在身份验证服务提供商中设置的,例如

 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

     }
 }

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

【问题讨论】:

  • 你用的是什么版本的 laravel?

标签: php laravel


【解决方案1】:
public function handle($request, Closure $next)
{
    $response = $next($request);

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

    return $response;
}

【讨论】:

  • 应该是 $request->status() 还是 $response->status()
猜你喜欢
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2021-02-17
  • 2016-05-15
  • 2019-09-05
  • 2014-09-29
相关资源
最近更新 更多