2017-01-27 1 views
1

Мой код выглядит так:Как перенаправить на страницу входа, если неавторизованный пользователь попытается щелкнуть? (Vue.js)

<script> 
    export default{ 
     props:['idStore'], 
     methods:{ 
      addFavoriteStore(event){ 
       $(function() { 
        $(document).ajaxError(function (e, xhr, settings) { 
         if (xhr.status == 401) { 
          window.Laravel.baseUrl+'/login' 
         } 
         else { 
          event.target.disabled = true 
          const payload= {id_store: this.idStore} 
          this.$store.dispatch('addFavoriteStore', payload) 

          setTimeout(function() { 
           location.reload(true) 
          }, 1500) 
         } 
        }); 
       }); 
      } 
     } 
    } 
</script> 

Когда нажмите кнопку любимой, он будет вызвать метод addFavoriteStore

После запуска метода addFavoriteStore, я буду называть условие для проверки несанкционированного пользователя или нет. Я пытаюсь использовать такое условие, но оно не работает. Я проверяю консоль, нет ошибки

Почему состояние не работает?

+0

Никогда не отправляйте контент, разрешенный только на страницу, которую просматривает неавторизованный пользователь. Вы не можете запретить пользователям показывать/использовать все на странице. – Teemu

+1

Несомненно, если вы используете обычные маршруты и виды Laravel в сочетании с компонентами vue, то, конечно же, вы можете использовать Laravel для управления входом пользователя в систему или нет, поэтому вы можете использовать ситуацию с типом защиты и директиву blade-диска, например '@ can ('usebtn') 'и т. д., тогда отобразите кнопку, если она войдет в систему, если не скроет или покажет ссылку на журнал, чтобы понравиться эта кнопка ??? –

+0

Нужно больше кода, который у вас есть, и его вид в виде шкалы или ваше дело как приложение SPA и т. Д. –

ответ

2

@ moses-toh так рад, что мои предложения сработали :-).

Так что, пройдя все это, как вы, используя ларавел и синтаксис лезвия, вы можете использовать Blade/PHP, чтобы проверить, вошел ли пользователь в систему или нет, и поставьте relivent Button/Message. Так, как и вы:

@if (Auth::user()) 
    <favorite-button>&heart; Favorite</favorite-button> 
    @else 
    <a href="{{route('login')}}">Login To Favorite</a> 
    @endif 

Надеюсь, что это нормально.