首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在登录后立即获取用户,但刷新works @nuxt-auth

无法在登录后立即获取用户,但刷新works @nuxt-auth
EN

Stack Overflow用户
提问于 2021-07-19 08:48:59
回答 2查看 201关注 0票数 1

登录成功,但在我刷新页面之前无法获取用户信息。

代码语言:javascript
复制
// 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/user response (image)

我现在错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-20 00:48:05

从nuxt配置中删除cookie选项解决了所有问题。看起来像是laravel和nuxt把cookie放在同一个名字上造成了冲突。

我仍然不明白为什么auth不能在登录后立即获取用户,而需要刷新页面。

票数 1
EN

Stack Overflow用户

发布于 2021-07-19 14:08:55

propertyName适用于旧版本的Auth/Nuxt,请使用如下所示的property

代码语言:javascript
复制
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: '/'
    },
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68434110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档