Axios header 不工作 Laravel 和 Vue.js
Axios header doesn't work Laravel and Vue.js
我正在使用 Laravel 的 Sanctum 库来验证我的 API,但它不起作用,一切似乎都是故意的。
我在有人验证后创建一个令牌,它进入数据库中的 personal_access_token
table。然后我将令牌插入到元标记中。然后我使用默认 javascript 检索元标记的内容(有效)并将其设置为全局授权 header 到 bootstrap.js
文件中的 Axios。
使用解密的不记名令牌时,此方法有效。但是当我开始使用 personal_access_token
上的默认 token 列时,它不起作用。
我定义令牌的方式
protected function authenticated(Request $request, $user)
{
$user->access_token = $user->createToken('api-token')->plainTextToken;
return $request->wantsJson() ? response()->json($user, 200) : redirect()->intended('/students');
}
效果很好。它会在有人验证后插入新令牌。
我将token设置为metatag内容的方式
<meta name="access-token" content="{{auth()->user()->tokens()->first()->token}}" />
我检查的时候可以看到token,是这样的:fd34a554cc5a6f14004f8728735375f980d81053b97f719be5bd504647d786cf
我设置token为全局的方式header到Axios
let metatag = document.querySelector('meta[name="access-token"]').content;
window.axios = require('axios');
axios.defaults.headers.common['Authorization'] = `Bearer ${metatag}`;
在我切换到 personal_access_table
之前,这没有问题。当我使用像 6|yqbI...
.
这样的标记时,这种方法很有效
现在返回 401 错误,当我点击它时,我可以在请求 Headers
中看到我的令牌,如 Authorization: Bearer fd34a554cc5a6f14004f8728735375f980d81053b97f719be5bd504647d786cf
当我将散列令牌用作全局时 header 我遇到了错误。
但是我已经将这一行添加到 .env 文件中 SANCTUM_STATEFUL_DOMAINS=localhost:8000
由于我的本地主机有一个端口,我需要在 .env 文件中手动定义它
那个解决方案对我有用。
我正在使用 Laravel 的 Sanctum 库来验证我的 API,但它不起作用,一切似乎都是故意的。
我在有人验证后创建一个令牌,它进入数据库中的 personal_access_token
table。然后我将令牌插入到元标记中。然后我使用默认 javascript 检索元标记的内容(有效)并将其设置为全局授权 header 到 bootstrap.js
文件中的 Axios。
使用解密的不记名令牌时,此方法有效。但是当我开始使用 personal_access_token
上的默认 token 列时,它不起作用。
我定义令牌的方式
protected function authenticated(Request $request, $user)
{
$user->access_token = $user->createToken('api-token')->plainTextToken;
return $request->wantsJson() ? response()->json($user, 200) : redirect()->intended('/students');
}
效果很好。它会在有人验证后插入新令牌。
我将token设置为metatag内容的方式
<meta name="access-token" content="{{auth()->user()->tokens()->first()->token}}" />
我检查的时候可以看到token,是这样的:fd34a554cc5a6f14004f8728735375f980d81053b97f719be5bd504647d786cf
我设置token为全局的方式header到Axios
let metatag = document.querySelector('meta[name="access-token"]').content;
window.axios = require('axios');
axios.defaults.headers.common['Authorization'] = `Bearer ${metatag}`;
在我切换到 personal_access_table
之前,这没有问题。当我使用像 6|yqbI...
.
现在返回 401 错误,当我点击它时,我可以在请求 Headers
中看到我的令牌,如Authorization: Bearer fd34a554cc5a6f14004f8728735375f980d81053b97f719be5bd504647d786cf
当我将散列令牌用作全局时 header 我遇到了错误。
但是我已经将这一行添加到 .env 文件中 SANCTUM_STATEFUL_DOMAINS=localhost:8000
由于我的本地主机有一个端口,我需要在 .env 文件中手动定义它
那个解决方案对我有用。