微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

登录后无法立即获取用户,但刷新有效@nuxt-auth

如何解决登录后无法立即获取用户,但刷新有效@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',}
            },redirect: {
        home: '/'
    },

之后我尝试通过在登录组件中使用 $auth.setUser(user) 或 $auth.setUser({user}) 手动设置用户信息,还有在 nuxt.config 中的 property/propertyName : ' '/undefined/false 选项,还是没有希望。

基本上,如果我不刷新页面,则无法获取用户(或设置用户)。 http://localhost/api/user 响应如下:

/api/user response (image)

我现在缺少什么?

解决方法

从 nuxt 配置中删除 cookie 选项解决了所有问题。看起来像 laravel 和 nuxt 把 cookie 放在同名中并导致冲突。

我仍然不明白为什么登录后无法立即获取用户,但需要刷新页面。

,

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',cookie: {
                name: 'mg_session',options: {
                    path: '/',sameSite: 'none',}
            },redirect: {
        home: '/'
    },

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。