Как сделать Nuxt-auth и Nuxt-i18n друзьями - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу использовать модуль nuxt @ auth и nuxt-i18n вместе. Проблема возникает, когда я хочу иметь разные маршруты для страницы входа. Например:

pages: {
 login: {
  en: '/authorization',
  fr: '/autorisation'
 }
}

Маршруты работают хорошо, но когда я пытаюсь использовать nuxt @ auth со всеми ограниченными страницами, по умолчанию перенаправление запрашивает страницу / login. В файле nuxt.config.js я могу переписать маршрут перенаправления, но могу установить только одно перенаправление.

auth: {
 redirect: {
  login: '/fr/autorisation'
 }
}

Как я могу показать модулю авторизации запросить маршрут для выбранного языка? Заранее спасибо!

1 Ответ

0 голосов
/ 21 января 2019

Похоже, что было решение этой проблемы https://github.com/nuxt-community/auth-module/pull/185,, но я не могу получить доступ к методу onRedirect в текущем выпуске.

Я сделал обходной путь. Я добавил плагин auth-lang-redirect.js, который переопределяет параметр redirect, определенный в файле nuxt.config.js.

export default ({ app }) => {
  var redirect = app.$auth.$storage.options.redirect
  for (var key in redirect) {
    redirect[key] = '/' + app.i18n.locale + redirect[key]
  }
  app.$auth.$storage.options.redirect = redirect
}

Обратите внимание, что я не использую модуль nuxt-i18n, но вы должны понять это. Вы должны зарегистрировать этот плагин в nuxt.config.js следующим образом:

auth: {
    strategies: { ... },
    redirect: {
      login: '/login',
      logout: '/',
      callback: '/login',
      home: '/user/profile'
    },
    plugins: ['@/plugins/auth-lang-redirect.js']
  },
...