【问题标题】:What SESSION_DOMAIN should I use if I'm using Laravel Sail?如果我使用 Laravel Sail,我应该使用什么 SESSION_DOMAIN?
【发布时间】:2021-04-22 00:10:41
【问题描述】:

我想使用 Nuxt.js 作为我的前端和 laravel sanctum 作为我的后端身份验证提供程序。我应该如何在我的 laravel 项目的 .env 文件中设置SESSION_DOMAIN 键。

我还应该编辑nuxt.config.js 文件中服务器对象部分的任何内容以使其正常工作吗?

【问题讨论】:

    标签: laravel nuxt.js laravel-sail


    【解决方案1】:

    要与 Sanctum 合作,我们首先应该熟悉几件事。我们必须在同一个域上使用我们的 SPA 和 API 后端,例如 domain.com 上的前端和 api.domain.com 上的 API。我们不能在 domain.com 上设置前端,在 another-domain.com 上设置后端 (API)。客户端必须能够在发送到后端的每个请求中包含 cookie。

    会话域是前端域名,没有协议和端口。

    在本地工作时必须设置为localhost,在服务器上工作时必须设置域名。

    请按照nuxt-laravel-sanctum-auth这个例子

    【讨论】:

    • 是的,我明白这一点,但如果后端的域什么都不是(laravelsai 的后端 url 实际上只是'localhost')。我应该如何设置 SESSION_DOMAIN 键以及我应该如何设置我的前端 axios baseURL?
    【解决方案2】:

    当您将 Sanctum 与 SPA(例如 Nuxt)一起使用时,您可以选择使用 APIcookies/sessions。如果您的应用程序是同一顶级域上的第一方应用程序,Laravel 建议使用基于 cookie 的方法,以便您可以利用 CSRF 保护。 Axios 和 Angular Http 库开箱即用地处理 CSRF,因此您不必太担心处理请求标头[1]

    在您的情况下,我假设您的应用程序是第一方并且在同一个顶级域中。因此,您的 SESSION_DOMAIN 值将是例如 .domain.com。此外,您还需要设置SANCTUM_STATEFUL_DOMAINS=domain.com。通常您的SESSION_DOMAIN 将只有您的应用程序使用的主域,而SANCTUM_STATEFUL_DOMAINS 将具有您的前端使用的所有子域(如果有)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2012-06-27
      相关资源
      最近更新 更多