首页 > 解决方案 > Nuxt Window Reload 未获取已登录用户

问题描述

所以我们为我们的应用实现了一个谷歌登录。登录工作,一旦用户登录,身份验证在后端完成。问题是当用户登录并被授予访问 nuxt 中页面的权限时,如果用户刷新窗口,它就会被注销。

这是我的 nuxt.config

auth: {
    strategies: {
      local: {
        endpoints: {
          login: {url: 'auth/login', method: 'post', propertyName: 'token'},
          user: { url: 'user', method: 'get', propertyName: 'data'},
          logout: { method: 'get', url: 'logout'}
        }
      }
    },
    redirect:{
      logout: '/signin'
    }
  },

  router: {
    middleware: ['auth']
  },

我正在使用 nuxt auth 库设置用户。

这是我所拥有的:

export default {
    auth: false,
    data() {
      console.log('token',this.$route.query.token)
        return {
            token: this.$route.query.token ? this.$route.query.token : null
        }
    },
    mounted() {
        this.$auth.setUserToken('Bearer ' + this.token).then((res) => {
console.log(res.data.data)
            this.$auth.setUser(res.data.data);
            return this.$router.push('/');
        })
        .catch( (e) => {
            this.$auth.logout();
            return this.$router.push(`/auth/login?error=1`);
        });
    }
}

有什么想法可以在卷绕机重新加载时使用户保持登录状态吗?

标签: javascriptvue.jsnuxt.js

解决方案


您必须将令牌保存在某处并在页面重新加载时恢复它,
您可以使用他们内置的 $storage 方法https://auth.nuxtjs.org/api/storage


推荐阅读