【问题标题】:How to send Authorization access_token to request header in Laravel using Middleware如何使用中间件将授权访问令牌发送到 Laravel 中的请求标头
【发布时间】:2018-12-29 22:59:37
【问题描述】:

我正在构建一个 API 身份验证系统。我可以使用Postman 检查所有内容,但我想附上这个标记部分(please see the image),这意味着从我的控制器或中间件发送的带有请求标头的标头部分。

我该怎么做。 请看我的代码示例。

图片。

我尝试使用中间件。

 public function handle($request, Closure $next)
{
    $token='Bearer '.$request->bearerToken();
    $response=$next($request);
    $response->header('Authorization',$token);

    return $response;
}

在内核中注册的中间件。

protected $middlewareGroups = [

    'Header'  =>[
        \App\Http\Middleware\HeaderMiddleware::class
    ],
];

还有我的routes\api.php

Route::group(['middleware' => ['auth:api','Header']], function(){
Route::post('details', 'API\PassportController@details');
Route::get('test','API\PassportController@test');
});

当我使用中间件时,它会在 Postman 中显示此结果。

【问题讨论】:

  • 使用这个中间件的结果是什么?您的回复中没有包含“标题”选项卡的屏幕
  • 显示登录页面。当我使用中间件时
  • 我更新了我的问题,请参阅@MarcinNabiałek
  • errr,Authorization 标头不是用于验证客户端(请求者),因此它与更改响应的中间件无关..
  • 我该如何解决这个问题?? @BagusTesa

标签: php laravel laravel-5 laravel-middleware laravel-response


【解决方案1】:

可以在中间件中添加一些自定义标头。要将自定义标头添加到响应中,您需要这样做:

$response = $next($request);
$response->headers->set('Authorization', 'Bearer '.$request->bearerToken());

【讨论】:

    【解决方案2】:

    您可以执行以下操作:

     $response = $client->request('POST', '/api/details', [
        'headers' => [
            'Authorization' => 'Bearer '.$token,
            'Accept' => 'application/json',
        ],
    ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-06
      • 2021-07-28
      • 2015-09-27
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      • 2022-10-16
      相关资源
      最近更新 更多