Я создаю API-токен без паспорта.Сначала я добавил столбец api_token
в таблицу user
.Затем, когда пользователь вошел в систему, я создаю новый токен API и сохраняю этот токен в БД.Затем я добавил к 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);
});
}
Я использую эту статью .Тем не менее у меня есть ошибка:
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 (Несанкционировано)