Nuxt auth用户在浏览器刷新后重置

Sb *_*ria 6 javascript jwt vue.js nuxt.js nuxt-auth

我正在构建一个带有用户登录和注册信息的应用程序。我使用 nuxt/auth 模块来处理身份验证。每当用户登录时,状态都会更改为 true ,不会出现问题。我遇到的唯一问题是,当我调用 set user 方法时,用户信息注册成功,但是每当我刷新浏览器时,即使首先设置成功,我也会丢失用户数据。

我的 nuxt auth 模块的 nuxt.js 配置

auth: {
        strategies: {
          local: {
            token: {
              property: "token",
              global: true,
            },
            redirect: {
                "login": "/account/login",
                "logout": "/",
                "home": "/page/ajouter-produit",
                "callback": false
            },
            endpoints: {
              login: { url: "http://localhost:5000/login", method: "post" },
              logout: false, //  we don't have an endpoint for our logout in our API and we just remove the token from localstorage
              user:false
            }
          }
        }
      },
Run Code Online (Sandbox Code Playgroud)

我的注册/登录组件

        async typeForm(e) {
            this.typesubmit = true;
            // stop here if form is invalid
            this.$v.$touch();
            if (this.$v.typeform.$anyError) {
                return;
            }
            const user = await axios.post(`${baseUrl}register`,{
                username:this.typeform.username,
                password:this.typeform.password,
                email:this.typeform.email,
                tel:this.typeform.tel,
                adresse:this.typeform.adresse,
                store:this.typeform.store,
            })
            .then(response => {
                console.log(response.data)
                return response.data.user;
            }).catch( (error) => {
                this.error = ''
                this.error = error.response.data
            })

            if(user){
                let loginData = {email:this.typeform.email,  password:this.typeform.password} 
                const response = await this.$auth.loginWith('local', { data: loginData})
                .then(response => {
                this.$auth.setUser(response.data.user) // the user is set without a problem, everything works fine.
                return response.data;
                }).catch( (error) => {
                    this.errors = error.response.data
                    console.log(error.response)
                })
            }
            
        }
Run Code Online (Sandbox Code Playgroud)

当我首先控制台记录状态和用户时,一切正常

  console.log(this.$store.state.auth.user) // logs all user data i get from the api call. but when i refresh i get an empty object 
  console.log(this.$store.state.auth.loggedIn) // logs true , and even after i refresh it's still true
Run Code Online (Sandbox Code Playgroud)

请帮忙

Sb *_*ria 6

问题解决了。我所做的是添加到我的登录功能

this.$auth.$storage.setUniversal('user', response.data.user, true)
Run Code Online (Sandbox Code Playgroud)

奇迹般有效。