如何将Laravel中的api_token传递到api路由?

时间:2018-09-22 14:13:47

标签: authentication laravel-5

好的,所以我知道这可能是一个在其他地方回答过的问题,但是我没有做任何工作,因此我必须做的事情非常糟糕。我设置了Laravel项目,然后向其中添加了laravel-api-auth以便使用api_token。我已将该列添加到我的用户表中,已使用令牌设置了env文件,但我的问题是,我不知道如何将令牌传递到API路由,并且每当在其上找到文章时,曾经有人举过例子,它总是“简单地通过api_token”,但不幸的是,这绝非易事。

我的项目需要从数据库中检索客户端列表,但前提是已登录的用户有权查看它们。我的路线文件包含以下内容:

Route::middleware('auth.api')->get('/user', function (Request $request) {
    return $request->user();
});


Route::group(['middleware' => ['apiauth:MY_GREAT_APP']], function () {
    Route::prefix('clients')->group(function () {
        Route::get('/{accountId}', 'ClientController@getClients');
    });
});

但是每次传递给我时,我总是会遇到401: Unauthorized错误。

我的apiauth.php文件已进行此设置(以xxxxx为例):

<?php

return [
    'services' => [

        'MY_GREAT_APP' => [
            'token' => 'xxxxx',
            'tokenName' => 'api_token',

            'allowJsonToken' => true,
            'allowBearerToken' => true,
            'allowRequestToken' => true,
        ]
    ],
];

根据我所读到的关于将令牌作为get传递的内容,我尝试过:

Route::get('/{accountId}?api_token=xxxxx', 'ClientController@getClients');

但是我只收到404错误。

我还尝试将其传递到我的clients.js api文件中:

export function getClients(accountId) {
    return api.get(`clients/${accountId}?api_token=xxxxx`);
}

我不知道如何将其作为Authorization标头传递(即使研究后,我也不知道它是什么)。我收集的唯一信息来自this article,但同样,没有一个明确的示例可供我在项目中使用。

因此,任何能给我一个如何通过此api_token的简单例子的人,我将万分感谢,谢谢。

0 个答案:

没有答案