【发布时间】:2023-02-18 02:10:58
【问题描述】:
这是我连续第三篇关于这个问题的帖子,不幸的是我没有得到正确的答案。我正在 laravel-vuejs 应用程序中使用 laravel-sanctum 开发身份验证系统。 laravel-sanctum 在本地主机中工作正常(从“/api/user”api 返回用户信息)。但是当我在实时服务器中部署时,它会返回 401(未验证)错误。我在这里分享我的标题:
我的.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:WvNeYkRnJbXNcttmiAKe1blplUslHWIsRQpvnPt0mxA=
APP_DEBUG=true
APP_URL=https://subdomain.domain.com/
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
SESSION_DRIVER=cookie
SESSION_LIFETIME=120
SESSION_DOMAIN=subdomain.domain.com
SESSION_SECURE_COOKIE=false
SANCTUM_STATIC_DOMAIN=subdomain.domain.com
我的圣所.php
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', 'subdomain.domain.com')),
'guard' => ['api'],
cors.php
'supports_credentials' => true,
授权文件
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'api' => [
'driver' => 'session',
'provider' => 'users',
],
],
来自 bootstrap.js
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] =
'XMLHttpRequest';
axios.defaults.withCredentials = true
来自组件的代码(脚本)
mounted() {
axios.defaults.headers.common["Authorization"] = `Bearer ${this.token}`;
axios.get('/api/user').then(response => {
this.userInfo = response.data
})
}
【问题讨论】:
-
你使用 Laravel
auth middleware吗? -
是的,我正在使用 auth 中间件
-
我不确定我是否正确配置了 auth 中间件
-
我不完全了解您的应用程序,但如果可能有帮助,您可以尝试下面的回答吗?
-
我以前从未使用过您安装方法的第一行,也从未遇到过与您相同的问题。这可能是问题所在。其次,我认为您的有状态域也应该包含 https:// 部分。
标签: javascript php laravel vue.js