我正在尝试为我的Laravel / Vue SPA创建用户身份验证。我决定使用Laravel Passport,因为在文档中建议这样做。我遵循了安装步骤,这也为我创建了一个客户端。创建用户时,我会为他们创建令牌,如下所示:
$user->createToken('Access Token')->accessToken;
正如我所看到的,令牌存储在oauth_access_tokens
表中。我已经在api/routes
文件中声明了一条路线:
Route::resource('user', 'UserController')->middleware('auth:api');
该路线受到良好保护,因为它给我以下错误:
获取http://127.0.0.1:9000/api/user 401(未授权)
通常我会这样获取用户:
fetchData() {
axios
.get("/api/user")
.then(response => {
this.users = response.data.data;
})
.catch(error => {
});
},
但是我想我现在必须通过axios请求传递某种令牌。我的问题是,用户登录时应该获取哪个令牌/客户端,以及如何通过axios传递令牌/客户端?我发现文档对此不太清楚。也许我是在想错或完全忘记了某些东西,但我似乎找不到它。
您必须将用户的令牌放在请求的标头部分作为授权:
var config = {
headers: {'Authorization': "bearer " + token}
};
var body = {
key: "value"
}
axios.post(
URL,
body,
config
).then((response) => {
console.log(response)
}).catch((error) => {
console.log(error)
});