我创建没有护照的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(未授权)