没有Laravel Passport的Laravel API返回401(未经授权)

时间:2019-05-15 07:34:27

标签: php laravel api authentication token

我创建没有护照的api令牌。 首先,我将列api_token添加到user表中。接下来,当用户登录时,我创建新的api令牌并将此令牌保存在DB中。 接下来,我添加了api.php代码:

Route::group(['middleware' => 'auth:api'], function()  {
    Route::post('action', 'APIController@action');
});

接下来,我使用axios发送数据:

const api_token = '<?php echo $api_token ?>';
let options = {
    method: 'post',
    url: '/api/action',
    data: data,
    headers: {
        "X-CSRFToken": document.querySelector('meta[name="csrf-token"]').getAttribute('content')
        },
}
let params = {
    'api_token': api_token
}

axios(options,params)
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});

我在AuthServiceProvider.php中添加了以下内容:

public function boot()
{
    $this->registerPolicies();
    Auth::extend('token', function ($app, $name, array $config) {
        return new TokenGuard(Auth::createUserProvider($config['provider']), $app->request);
    });
}

我正在使用此article。 还是我有错误:

  

401(未经授权)

编辑:

我更改了我的axios:

    const api_token = '<?php echo $api_token ?>';
    let options = {
        method: 'post',
        url: '/api/action',
        data: mergedData,
        headers: {
            "X-CSRFToken": document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
        },
        params: {
            'api_token': api_token
        }
    }
    axios(options)
    .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    });

现在我以GET方式发送令牌,但仍然出现错误:

  

http://127.0.0.1:8000/api/action?api_token=b005413b-3197-48ac-8747-32bbcf8b858f 401(未授权)

0 个答案:

没有答案