【发布时间】:2016-01-10 14:22:55
【问题描述】:
在AuthServiceProvider中;
Auth::viaRequest('api', function ($request) {
if ($request->input('api_token')) {
return User::where('api_token', $request->input('api_token'))->first();
}
});
我似乎无法让它工作。 GET 请求没有body,因此不存在input。
我也尝试过使用$request->header('api_token'),但仍然得到unauthorised
如果我像下面这样对DB 进行独立搜索,它会起作用;
Auth::viaRequest('api', function ($request) {
return User::where('api_token', 'my_api_key')->first();
});
谁能确认$request 标头可以在这里访问?
【问题讨论】:
-
请求是什么样的?
-
GET请求的输入来自查询字符串:http://example.com/users?api_token=my_api_key。 -
还是不行。我也用
POST尝试过它,它也适用于POST,因为我把api_token放在了正文中。另外你应该知道你在laravel/lumen中没有?所以我只是修改了我的路由到/{api_token} -
lumen 知道如何处理通过查询字符串传入的变量。如果您将
api_token作为查询字符串的一部分传入,则可以使用$request变量很好地访问它。但是,看起来您的标头方法可以正常工作,这也很好。
标签: laravel laravel-5 lumen lumen-5.2