Перенаправить на предыдущий URL после входа в nuxt.js - PullRequest
0 голосов
/ 09 февраля 2019

Я в основном хочу перенаправить на предыдущий URL, когда пользователь успешно вошел в систему.

Я перенаправляю на страницу входа с предыдущим URL, таким как /login?redirect=/page1/page2.

И яхотите, когда пользователь аутентифицируется, чтобы быть перенаправленным обратно на этот URL.Я использую auth-module здесь: https://auth.nuxtjs.org/

Как я могу войти в систему пользователя.

methods: {
    async submit() {
      await this.$auth.loginWith('local', {
        data: this.form
      })
    }
}

Единственное, что я смог найти в документации, это: https://auth.nuxtjs.org/getting-started/options#redirect

, который, однако, перенаправляет только на конкретную страницу вместо предыдущей страницы в запросе.

Есть идеи, как этого добиться?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Существует довольно подробное обсуждение в github о том, что у Nuxt есть проблема с перенаправлением, когда вы попадаете на защищенную страницу напрямую.Перенаправление переходит на перенаправление страницы по умолчанию, а не на предыдущую страницу попаданий.Правильным поведением должно быть сохранение redirect, а затем переход к нему после аутентификации (входа в систему) с правильными учетными данными.

3 дня назад (14 апреля 2019 г.), MathiasCiarlo отправил PR на репо auth-module, чтобы исправить это.Основная причина, по которой редирект был «утерян», связана с состоянием того, что значение перенаправления не может быть установлено как cookie в режиме SSR.Его код влияет на файл storage.js, в частности на метод setCookie().Я включил этот измененный метод здесь просто для справки.

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
  }

Я лично только что изменил свой npm сам, но вы могли бы, вероятно, раскошелиться на репо и использовать этот разветвленный npm на данный момент.Или вы можете подождать, пока PR не будет объединен с основной линией репо auth-module. 1017 *

0 голосов
/ 11 февраля 2019

Вы можете сделать это

  this.$router.back()

И вернуться к последнему маршруту.

Программная навигация |Vue Router https://router.vuejs.org/guide/essentials/navigation.html

Спасибо.

...