2017-01-27 3 views
1

Mein Code ist wie folgt:Wie wird auf die Anmeldeseite umgeleitet, wenn ein nicht autorisierter Benutzer versucht zu klicken? (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> 

Wenn Favoritentaste klicken, wird es addFavoriteStore Methode

Nach Lauf addFavoriteStore Methode aufrufen, werde ich Zustand rufen nicht autorisierte Benutzer zu überprüfen oder nicht. Ich versuche, eine solche Bedingung zu verwenden, aber es funktioniert nicht. Ich überprüfe auf der Konsole, kein Fehler

Warum funktioniert der Zustand nicht?

+0

Senden Sie niemals autorisierten Inhalt an eine Seite, die von einem nicht autorisierten Benutzer angezeigt wird. Sie können nicht verhindern, dass Benutzer alles auf der Seite anzeigen/verwenden. – Teemu

+1

Sicherlich, wenn Sie die normalen Laravel Routen und Ansichten in Verbindung mit vue Komponenten verwenden, können Sie sicher mit Laravel steuern, ob ein Benutzer angemeldet ist oder nicht, so dass Sie eine Guard-Art Situation und eine Blade-Direktive wie '@ verwenden können. can ('usebtt') 'etc dann Anzeige-Button, wenn eingeloggt, wenn nicht verstecken oder zeigen Sie einen Link zum Einloggen, um diesen Button zu mögen ??? –

+0

Benötigen Sie mehr Code, den Sie haben, und ob es in einer Balade Ansicht oder Sie tun dies als eine SPA-Anwendung usw. –

Antwort

2

@ moses-toh so froh, dass meine Vorschläge funktionierten :-).

Durch die Verwendung von Laravel und der Blade-Syntax können Sie Blade/PHP verwenden, um zu überprüfen, ob der Benutzer angemeldet ist oder nicht, und den Relivent Button/Message zu liefern. So wie du es getan hast:

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

Hoffe, das ist in Ordnung.

Verwandte Themen