在 laravel 控制器中获取标头授权密钥?

2022-08-30 09:18:39

尝试在控制器中获取标头授权密钥以制作 API。要求来自小提琴手

$headers = apache_request_headers();

$header包含一个数组。

Array
(
    [User-Agent] => Fiddler
    [Host] => localhost:8000
    [Content-Length] => 102
    [Authorization] => TestKey
)

如果我尝试像这样获取 授权 ,它的抛出错误。

$header['Authorization]

错误

Undefined index: Authorization

尝试了许多方法来获得授权,但没有任何效果。有没有办法得到这个?


答案 1

若要从请求中获取标头,应使用 Request 类

public function yourControllerFunction(\Illuminate\Http\Request $request)
{
    $header = $request->header('Authorization');

    // do some stuff
}

查看 https://laravel.com/api/5.5/Illuminate/Http/Request.html#method_header


答案 2

虽然这是一个古老的话题,但它可能对某人有用......
在新的 Laravel 版本中,可以通过调用 的方法直接获取持有者授权令牌:Illuminate\Http\RequestbearerToken()

Auth::viaRequest('costom-token', function (Request $request) {
    $token = $request->bearerToken();
    // ...
});

或直接从控制器:

public function index(Request $request) {
    Log::info($request->bearerToken());
    // ...
}

推荐