簡體   English   中英

登錄后無法立即獲取用戶,但刷新有效@nuxt-auth

[英]Can't fetch user right after login, but refresh works @nuxt-auth

登錄成功,但在刷新頁面之前無法獲取用戶信息。

// Login Component
  try {
    await this.$auth.loginWith("mg_login", {
      data: this.user,
    });
  } catch (e) {
    this.$toast.error("Error!", { duration: 1500 });
  }


// Nuxt config
    auth: {
    strategies: {
        'mg_login': {
            provider: 'laravel/sanctum',
            url: `http://localhost`,
            maxAge: 60 * 60 * 120,
            endpoints: {
                user: {
                    url: '/api/user',
                    method: 'GET',
                    propertyName: false
                },
                login: {
                    url: '/login',
                    method: 'POST'
                },
                csrf: {
                    url: '/sanctum/csrf-cookie',
                    method: 'GET'
                },
            },
            cookie: {
                name: 'mg_session',
                options: {
                    path: '/',
                    sameSite: 'none',
                    maxAge: 60 * 60 * 120,
                }
            },
        },
    },
    redirect: {
        home: '/'
    },
},

之后,我嘗試通過在登錄組件中使用 $auth.setUser(user) 或 $auth.setUser({user}) 手動設置用戶信息,還在 nuxt.config 中使用 property/propertyName : ' '/undefined/false 選項,仍然沒有希望。

基本上,如果我不刷新頁面,則無法獲取用戶(或設置用戶)。 http://localhost/api/user 響應如下:

/api/用戶響應(圖像)

我現在缺少什么?

從 nuxt 配置中刪除 cookie 選項解決了所有問題。 似乎 laravel 和 nuxt 將 cookie 放在同名中並導致沖突。

我仍然不明白為什么 auth 無法在登錄后立即獲取用戶,但需要刷新頁面。

propertyName用於舊版本的Auth/Nuxt ,使用如下property

auth: {
    strategies: {
        'mg_login': {
            provider: 'laravel/sanctum',
            url: `http://localhost`,
            maxAge: 60 * 60 * 120,
            user: {
                property: false,
            }, 
            endpoints: {
                user: {
                    url: '/api/user',
                    method: 'GET'
                },
                login: {
                    url: '/login',
                    method: 'POST'
                },
                csrf: {
                    url: '/sanctum/csrf-cookie',
                    method: 'GET'
                },
            },
            cookie: {
                name: 'mg_session',
                options: {
                    path: '/',
                    sameSite: 'none',
                    maxAge: 60 * 60 * 120,
                }
            },
        },
    },
    redirect: {
        home: '/'
    },
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM