流明认证5.2

时间:2016-01-10 14:22:55

标签: 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();
    }
});

我似乎无法让它发挥作用。 GET次请求没有body,因此不存在input。 我也尝试使用$request->header('api_token')但仍然获得unauthorised

如果我对DB进行独立搜索,就像下面一样;

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

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

1 个答案:

答案 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'); 方法。