Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel Lumen 5.2中的身份验证_Laravel_Laravel 5_Lumen_Lumen 5.2 - Fatal编程技术网

Laravel Lumen 5.2中的身份验证

Laravel Lumen 5.2中的身份验证,laravel,laravel-5,lumen,lumen-5.2,Laravel,Laravel 5,Lumen,Lumen 5.2,在AuthServiceProvider中 Auth::viaRequest('api', function ($request) { if ($request->input('api_token')) { return User::where('api_token', $request->input('api_token'))->first(); } }); 我好像没法让它工作获取请求没有正文,因此不存在输入。 我也尝试过使用$request

在AuthServiceProvider中

Auth::viaRequest('api', function ($request) {
    if ($request->input('api_token')) {
        return User::where('api_token', $request->input('api_token'))->first();
    }
});
我好像没法让它工作<代码>获取请求没有
正文
,因此不存在
输入
。 我也尝试过使用
$request->header('api\u token')
,但仍然得到
未经授权的

如果我在下面的
DB
上进行独立搜索,它会工作

Auth::viaRequest('api', function ($request) {
        return User::where('api_token', 'my_api_key')->first();
});

有人能确认可以在这里访问
$request
标题吗?

在阅读我的答案之前,请先阅读(以防您使用Apache Web服务器)

包含无效字符(包括下划线)的标题现在被静默删除

好的,现在要获取您的
api_令牌
值,您需要将请求头字段名更改为
api令牌
(这是标准的,您可以阅读)

现在,您可以通过以下方式访问您的
Api令牌
值:

$request->header('Api-Token', 'any-default-value');

如果您真的想获得非标准的标题定义,可以使用函数。有关更多信息,请阅读
Symfony\Component\HttpFoundation\ServerBag@getHeaders
方法。

请求看起来像什么?请求的输入来自查询字符串:
http://example.com/users?api_token=my_api_key
。仍然不起作用。我也用
POST
尝试过它,它也可以用
POST
工作,因为我把
api\u标记
放在了主体中。另外,您应该知道在
laravel/lumen
中没有
,所以我刚刚修改了我的路由到
/{api_token}
lumen知道如何处理通过查询字符串传入的变量。如果将
api\u令牌作为查询字符串的一部分传入,则可以使用
$request
变量访问它。但是,看起来您已经使用了header方法,所以这也很好。