Saltar al contenido

Redirigir a la URL anterior después de iniciar sesión en nuxt.js

Solución:

Puedes hacerlo

  this.$router.back()

Y vuelve a la última ruta.

Navegación programática | Enrutador Vue https://router.vuejs.org/guide/essentials/navigation.html

Gracias.

Hay una discusión bastante detallada en github acerca de que Nuxt tiene un problema con una redirección cuando ingresa a una página protegida directamente. La redirección va a la redirección de página predeterminada en lugar de a la página visitada anteriormente. El comportamiento correcto debe ser almacenar el redirect y luego proceda después de la autenticación (inicio de sesión) con las credenciales correctas.

Hace 3 días (14 de abril de 2019), MathiasCiarlo envió un PR en el auth-module repositorio para solucionar este problema. La razón básica por la que se “perdió” el redireccionamiento tiene que ver con el estado del valor del redireccionamiento que no puede establecerse como una cookie en el modo SSR. Su código impacta el storage.js archivo, en particular el setCookie() método. He incluido ese método cambiado aquí solo como referencia.

setCookie (key, value, options = {}) {
    if (!this.options.cookie) {
      return
    }

    const _key = this.options.cookie.prefix + key

    const _options = Object.assign({}, this.options.cookie.options, options)

    if (isUnset(value)) {
      Cookies.remove(_key, _options)
    } else {

      // Support server set cookies
      if (process.server) {
        this.ctx.res.setHeader('Set-Cookie', [_key + '=' + value])
      } else {
        Cookies.set(_key, value, _options)
      }
    }

    return value
  }

Personalmente, yo mismo modifiqué mi npm, pero probablemente podrías bifurcar el repositorio y usar ese npm bifurcado por el momento. O puede esperar hasta que el RP se fusione en la línea principal del auth-module repo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *