在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
标题吗?
答案 0 :(得分:0)
在您阅读我的回答之前,请阅读this article(以防您使用的是Apache Web Server)。
现在以静默方式删除包含无效字符(包括下划线)的标题。
好了,现在要获取RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
值,您需要将请求标题字段名称更改为api_token
(这是标准的,您可以阅读this)。
现在,您可以通过以下方式访问Api-Token
值:
Api-Token
如果您确实想要获得非标准标头定义,可以使用getallheaders
功能。有关详细信息,请参阅$request->header('Api-Token', 'any-default-value');
方法。