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

#vue.js #authentication #vue-router #page-refresh #routerlink

#vue.js #аутентификация #vue-router #обновление страницы #routerlink

Вопрос:

https://github.com/ahcene-bouazza/P7_Bouazza_Ahcene_Grouporama.git вот моя ссылка на github для моего проекта

  • Моя проблема в том, что когда я нахожусь на странице входа в систему, я нажимаю на «надпись» регистрации, она открывает мне страницу регистрации нормально, но когда я обновляю браузер, он возвращается на страницу входа
  • Другая проблема заключается в том, что я ввожу свою регистрацию непосредственно в адресе своего браузера «http://localhost:8080/signup » он не попадает туда, но переходит на страницу входа в систему http://localhost:8080/

страница входа
страница регистрации

Большое вам спасибо, если вы сможете найти решение для меня, это будет очень оценено

Ответ №1:

Вы App.vue перенаправляете вызов по mounted() вызову this.$router.push('/') , но у вас есть this.user.id только после входа в систему, без пользовательских данных вы вызываете перенаправление на страницу входа. Это неверно. Просто прочитайте официальные документы documentaion, и вы поймете, как правильно использовать защищенные маршруты.

Пример router/index.js :

 router.beforeEach((to, from, next) => {
  if (to.name !== 'Login' amp;amp;  to.name !== 'Signup' amp;amp; !this.user.id == 0) next({ name: 'Login' })
  else next()
})
 

вместо App.vue

 if (this.user.id == 0 amp;amp; this.$router.currentRoute.path != '/') {
        this.$router.push('/')
      }