2016-09-29 6 views
1

Richtig, damit ich ein kleines Dilemma habe hier :).

Ich arbeite an einem Projekt, das mit Angularjs und Laravel gebaut wird. Die Anmeldung erfolgt mit Laravel, das außerhalb von AngularJs "Scope" liegt, sollte ich sagen.

Also im Front-End sehe ich diese Seite nicht.

Was ich versuche zu tun ist $ http Get-Methode zu bekommen/Abmelden (von Laravel wieder behandelt). Bei Erfolg leiten Sie den Benutzer nach/login um.

Also, was ich dachte zu tun ist:

$rootScope.logout = function() { 

     $http.get('/logout', function (response) { 
      console.log('redirect'); 
      $window.location.href('/login'); 
     }); 
    }; 

aber scheint nicht aus irgendeinem Grund zu arbeiten. Vorschläge?/logout löscht alle Sitzungen usw., die außerhalb meiner "Zuständigkeit" liegen :)

Btw Ich benutze auch UI-Router.

+0

Sie haben html5mode aktiviert? –

+0

Ja, ich könnte, könnte das die Ursache sein? – TSlegaitis

Antwort

0

Diese location.replace sollte Ihr Problem lösen.

$rootScope.logout = function() { 

    $http.get('/logout', function (response) { 
     console.log('redirect'); 
     var origin = $window.location.origin; 
     $window.location.replace(origin + '/login'); 
    }); 
}; 

UPDATE: Falls Sie eine Route für Logout-Seite definiert haben.

$ rootScope.logout = function() {

$http.get('/logout', function (response) { 
     console.log('redirect'); 
     $state.go('logout'); 
    }); 
}; 

Aber bedenken Sie, sollten Sie logout Zustand in einem solchen Fall haben.

+0

Richtig, das macht Sinn. 1 Sache, wenn ich versuche, in Inspector (Registerkarte Netzwerk) abzumelden oder abzumelden, sehe ich Logout aufgerufen wird, die 302 gefunden zurückgibt. Aber gleich nach diesem Anruf bekomme ich einen weiteren Anruf in die App. Schwer zu erklären. Ich denke, die Weiterleitung geschieht aus irgendeinem Grund nicht. Könnte es UI-Router config sein ($ urlRouterProvider.otherwise ('/');)? – TSlegaitis

+0

Ja, könnte sein. Aber wenn Sie eine vordefinierte Route für Ihre '/ Logout'-Seite haben, werde ich meine Antwort für diesen Fall aktualisieren. – Mikki

+0

Hmm ..:// Logout ist alles Laravel. Ich habe einen Zustand beim Abmelden des UI-Routers erstellt, aber wahrscheinlich muss ich BE Dev auffordern, zur Anmeldung umzuleiten, nachdem die Sitzung gelöscht wurde. Nicht 100% sicher – TSlegaitis