php - 没有 Laravel Passport 的 Laravel API 返回 401(未授权)
问题描述
我创建没有护照的 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(未经授权)
解决方案
推荐阅读
- docker - Broadleaf 微服务部署选项
- firebase - 使用 React Native 在 Firebase 中使用动态链接设置带有查询参数的动态深层链接
- xml - XSLT 查找所有相关元素
- reporting-services - 我可以使用哪些其他表达式来尝试计算 SSRS 报告中的平均每日金额
- go - 我应该创建一个客户端来服务所有请求吗?
- javascript - Is there an easier way to detect collision on an HTML canvas?
- javascript - 使用 React javascript 不允许在 textarea 中使用双倍空格
- laravel - 如何在 Laravel 7 中获取每个用户的订单详细信息
- python-3.x - 为 sqlite3 创建 python pop 函数
- javascript - 我的 console.log() 应该运行 3 次吗?