在laravel控制器中获取Header Authorization键?

Sun*_*nil 27 php authorization laravel laravel-5

尝试在控制器中获取标头授权密钥以生成API.请求来自提琴手.

$headers = apache_request_headers();
Run Code Online (Sandbox Code Playgroud)

并且$ header包含一个数组.

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

如果我这样尝试获取授权,则抛出错误.

$header['Authorization]
Run Code Online (Sandbox Code Playgroud)

错误:

Undefined index: Authorization
Run Code Online (Sandbox Code Playgroud)

尝试了许多获得授权的方法,但没有做任何工作.有没有办法取这个?

Sze*_*nis 67

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

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

    // do some stuff
}
Run Code Online (Sandbox Code Playgroud)

https://laravel.com/api/5.0/Illuminate/Http/Request.html#method_header

  • 我很高兴我可以提供帮助;) (2认同)

Foo*_*iko 12

虽然这是一个古老的话题,这可能是为别人有用......
在新版本Laravel,它可以通过打电话来想承载授权令牌直接Illuminate\Http\RequestbearerToken()方法:

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

或直接来自控制器:

public function index(Request $request) {
    Log::info($request->bearerToken());
    // ...
}
Run Code Online (Sandbox Code Playgroud)