【问题标题】:Laravel sanctum works in localhost, but returns 401 unauthenticated in live serverLaravel sanctum 在本地主机上工作,但在实时服务器中返回 401 unauthenticated
【发布时间】: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


【解决方案1】:

我认为您应该像这样在使用 vue 应用程序的刀片页面中定义主页 url。

<script>
      window.home = "<?php echo your-host-url ?>";
</script>

为确保 API 路由正确,您添加:

axios.get(window.home + '/api/user').then(response => {
    this.userInfo = response.data
})

【讨论】:

  • 不工作兄弟
【解决方案2】:

解决方案是将其添加到根文件夹的 .htaccess 中(不仅在公共文件夹中)

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 2018-09-12
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多