2017-01-27 13 views
1

私のコードは次のようである:お気に入りボタンをクリックすると、それが実行addFavoriteStore方法の後addFavoriteStore方法権限のないユーザーがクリックしようとするとログインページにリダイレクトする方法は? (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> 

、私は、不正なユーザかどうかをチェックするための条件を呼び出します。私はそのような状態を使用しようとしますが、動作しません。私は、コンソールで、エラーを確認します

なぜ条件が機能しませんか?

+0

許可されていないユーザーが閲覧したページには、承認されたコンテンツのみを送信しないでください。ユーザーがページ上のすべてを表示/使用するのを防ぐことはできません。 – Teemu

+1

通常のLaravelのルートとビューをvueコンポーネントと組み合わせて使用​​する場合は、必ずLaravelを使用してユーザーがログインしているかどうかを制御できるので、ガードタイプの状況と '@ can( 'usebtn') 'など、このボタンのようにログインするためのリンクを表示しない、または表示しない場合はログインボタンを表示します??? –

+0

あなたが持っているより多くのコードを必要とするかどうか、またはbalade viewかSPAアプリケーションなどでこれを行うかどうか –

答えて

2

@ moses-tohとてもうれしい私の提案はうまくいった:-)

laravelとブレードシンタックスを使用する場合は、Blade/PHPを使用してユーザーがログインしているかどうかを確認し、Relivent Button/Messageを提供できる場所に移動します。あなたがしたように:

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

希望です。

関連する問題