Estoy creando una aplicación con inicio de sesión de usuario e información de registro. Uso el módulo nuxt/auth para manejar la autenticación. Cada vez que el usuario inicia sesión, el estado cambia a verdadero sin ningún problema. El único problema que tengo es cuando llamo al método de usuario establecido, la información del usuario se registra correctamente, pero cada vez que actualizo el navegador pierdo los datos del usuario aunque en primer lugar se configuró correctamente.
mi configuración nuxt.js para el módulo de autenticación nuxt
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 } } } },Mi componente de registro/inicio de sesión
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) }) } }Cuando consuelo registro el estado y el usuario en primer lugar, todo funciona bien
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 truepor favor ayuda
Problema resuelto. lo que hice fue agregar a mi función de inicio de sesión
this.$auth.$storage.setUniversal('user', response.data.user, true)Funciona de maravilla.
Tengo el mismo problema. Después de agregar this.$auth.$storage.setUniversal('user', response.data.user, true), el usuario se desconecta después de actualizar la página.
Aquí está mi código:
this.$auth .loginWith("local", { data: { email: this.connexionLogin, password: this.connexionPassword } }) .then( (response) => { this.$auth.setUser(response.data.user); this.$auth.$storage.setUniversal('user', response.data.user, true) this.$emit("connexionOk");y mi nuxt.config:
auth: { watchLoggedIn: true, resetOnError: true, redirect: { login: "/admin/login", logout: "/admin/login", callback: "/callback", home: '/admin/', // Pour ne pas être redirigé vers la home suite authentification }, strategies: { local: { token: { property: "tokens.access.token", }, user: { property: 'user', autoFetch: false }, endpoints: { login: { url: "v1/auth/login", method: "post", }, logout: false, }, }, }, },