亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Laravel Sanctum & NuxtJS SPA無(wú)法在瀏覽器中創(chuàng)建csrf cookie
P粉512363233
P粉512363233 2023-12-13 13:49:38
0
1
780

我在 Laravel 中有一個(gè)帶有 Sanctum 的后端 API,在 NuxtJS 中有單獨(dú)的存儲(chǔ)庫(kù) SPA

我正在嘗試通過(guò) Sanctum 驗(yàn)證我的 SPA。我正在嘗試按照 Sanctum 文檔在瀏覽器中獲取 CSRF cookie。

問(wèn)題是當(dāng)我調(diào)用 Sanctum 提供的 CSRF 令牌端點(diǎn)時(shí),我得到了正確的響應(yīng),但沒(méi)有設(shè)置 cookie。就這樣,沒(méi)有錯(cuò)誤。我是否要使用 nuxt auth 或者只是普通的舊 axios 調(diào)用并不重要。

這就是我所擁有的:

域名:API -publisher.local:8080;前端-publisher.local:3000

NUXT 身份驗(yàn)證配置

auth: {
    strategies: {
      laravelSanctum: {
        provider: 'laravel/sanctum',
        url: 'http://publisher.local:8080',
        endpoints: {
          login: { url: '/api/v1/login', method: 'post' },
          // logout: { url: '/auth/logout', method: 'post' },
          // user: { url: '/auth/user', method: 'get' }
        }
      },
    },
  },

AXIOS 配置

axios: {
    baseURL: 'http://publisher.local:8080/api/v1', // Used as fallback if no runtime config is provided
    credentials: true,
    proxy: true,
  },

神圣.php

'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
        '%s%s',
        'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1,local:3000',
        Sanctum::currentApplicationUrlWithPort()
    ))),

會(huì)話.php

'domain' => env('SESSION_DOMAIN', '.local'),

我嘗試了這些設(shè)置的不同組合和變體,但都不起作用。你們知道可能出了什么問(wèn)題嗎?

P粉512363233
P粉512363233

全部回復(fù)(1)
P粉311563823

我想我已經(jīng)明白了這一點(diǎn)。我讓它工作了。

因此 .local 不能是頂級(jí)域,我認(rèn)為這可能是問(wèn)題的一部分,但我不確定。

將域名更改為舊的 localhost 可以解決問(wèn)題,但此解決方案有一個(gè)問(wèn)題。由于某些我不知道的原因,無(wú)論我調(diào)用哪個(gè)端點(diǎn),我都會(huì)在對(duì) API 的任何調(diào)用中自動(dòng)獲取 XSRF cookie。奇怪。

最有效的方法是將域名更改為 api.publisher.compublisher.com,然后更改 Sanctum 文檔中的所有設(shè)置。

對(duì)域名要格外小心,確保它們匹配并且設(shè)置正確。重新配置那個(gè)東西非常容易,但很難診斷它!

希望有幫助!

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板