In meiner angularjs App habe ich Route /#/tasks
, die Aufgaben von /tasks
URL abrufen. Wenn der Benutzer manuell auf /tasks
url geht, erhält er JSON-Daten. Sollte ich verhindern, dass JSON-Daten dem Benutzer angezeigt werden? Was ist die beste Praxis? Zum Beispiel kann ich im Backend überprüfen, ob die Anfrage Ajax ist oder nicht. Wenn nicht - Weiterleitung an Basis-URL. Backend - laravel 5
.Angularjs route: Verhindern, dass Benutzer json Daten manuell erhalten
Antwort
Aus dem Titel des Beitrags mit den Schlüsselwörtern "Benutzer verhindern" scheint es, dass Sie eine Art von Logik benötigen, um Zugriffsrechte für einen bestimmten Benutzer zu definieren.
könnten Sie halten die Berechtigungslogik vor ein Benutzer immer Zugriff auf eine Route zu lösen. Hierzu können Sie die $routeProvider
resolve
Eigenschaft der .when()
Methode nutzen.
Gemäß der docs die resolve
Eigenschaft ...
Eine optionale Karte von Abhängigkeiten, die in die Steuerung eingespritzt werden soll. Wenn eine dieser Abhängigkeiten verspricht, wartet der Router darauf, dass sie alle aufgelöst werden oder dass einer zurückgewiesen wird, bevor der Controller instanziiert wird.
Wenn alle Versprechen erfolgreich gelöst wurden, werden die Werte der aufgelösten Versprechen eingegeben, und das $ routeChangeSuccess-Ereignis wird ausgelöst. Wenn eines der Versprechen abgelehnt wird, wird das $ routeChangeError-Ereignis ausgelöst.
Die Entschlossenheit nimmt in Funktionen (als injizierbare Abhängigkeiten), von denen jeder zurückkehren kann ein Versprechen, und wenn eine der Versprechungen abgelehnt bekommen, wie zitiert, wird ein Fehler geworfen und buchstäblich weder die Strecke noch Die Ansicht ist geladen.
Damit die Berechtigungslogik funktioniert, müssen Sie einen API-Aufruf an eine Backend-Funktion/einen Back-End-Dienst ausführen, der entweder den Benutzer für die Route erlaubt oder seine Anfrage ablehnt.
.when('/tasks', {
resolve: {
authorize: function(authService){
//some api call to get either acceptance (e.g. status code 200) or rejection (status code 500) for the user being authorized
return authService.authorize();
}
},
controller: function(){
//route controller logic
}
})
Alternativ, wenn Sie auch etwas bei Ausfall der Versprechen erfüllen würden wollen, können Sie dies tun, indem einfach das Versprechen mit einem catch()
Handler Verkettungs und werfen einen Fehler mit Nachdruck das Versprechen ablehnen, die von zurückgegeben die catch()
selbst.
.when('/tasks', {
resolve: {
authorize: function($location, authService){
//some api call to get either acceptance or rejection for the user being
return authService.authorize()
.then(function(){
//some logic on success of the promise
})
.catch(function(){
$location.path('/auth/login/');
throw 'Authorization error';
});
}
},
controller: function(){
//route controller logic
}
})
- 1. AngularJS erhalten verwandte Daten vom Benutzer durch JSON API
- 2. AngularJS: Route zu verhindern ändert
- 3. Verhindern, dass Benutzer Benachrichtigungen verwerfen
- 4. Wie kann ich verhindern, dass Benutzer Daten in DataGridViewComboBoxCells eingeben?
- 5. Wie Daten pro Benutzer speichern und verhindern, dass andere sie
- 6. AngularJS Anzeige JSON Daten
- 7. Angularjs Filter Json Daten
- 8. AngularJS: Verhindern, dass verdeckte Formularfelder validiert werden
- 9. Route Angular2-Anwendung, wenn Benutzer Navigationsleiste manuell ändert?
- 10. Verhindern, dass Benutzer Zeitpläne für Jobs erstellen
- 11. Verhindern, dass Benutzer im Internet surfen
- 12. verhindern, dass Benutzer 0 als Eingabe eingibt
- 13. Verhindern, dass Code vom Benutzer ausgeführt wird
- 14. Wie kann man verhindern, dass Benutzer den Dateipfad in HTML-Dateieingabesteuer manuell bearbeiten?
- 15. AngularJS - verhindern nicht authentifizierten Benutzer den Zugriff auf bestimmte Routen
- 16. Kann keine richtigen Daten von JSON-Datei erhalten AngularJS
- 17. JSON-Daten mit AngularJS d3
- 18. AngularJS Route nicht
- 19. AngularJS - Browser Caching JSON Daten
- 20. Verhindern, dass Getreide polymorphe Daten schreibt
- 21. Zeilenumbrüche Verhindern, dass BeautifulSoup Daten extrahiert
- 22. Verhindern, dass Mausfreigaben zweimal auftreten
- 23. AngularJS - Set Versprechen manuell
- 24. Verhindern, dass Benutzer eine Datei in SVN übergeben
- 25. Wie man wirklich ein Element verhindern, dass mit AngularJS
- 26. AngularJS $ resource Mit den Daten zu erhalten
- 27. Verhindern, dass Benutzer ein Foto von der App-Anzeige machen
- 28. Wie filtere ich JSON-Daten mit AngularJs?
- 29. Firebase erstellen Benutzer "manuell"
- 30. Spring Security: Authentifizierung Benutzer manuell