Ich möchte Staaten in meiner eckigen Anwendung authentifizieren. Die verfügbaren Ressourcen sind zu kompliziert und ich verstehe nicht warum.wie Staaten in angular js zu authentifizieren
Meine einfache Logik ist eine Variable
$rootScope.is_authenticated = true
eingestellt und kontrolliert werden, wann immer ein Zustand geladen wird, um zu sehen, ob die Variable wahr ist oder nicht.
Wie kann ich dies erreichen und warum ist Login und Authentifizierung so kompliziert in eckigen.
meine Config-Datei
.config(function($stateProvider,$urlRouterProvider) {
$stateProvider
.state('auth', {
url: '/auth',
templateUrl: 'partials/auth.html',
controller: 'AuthCtrl'
})
.state('dashboard', {
url: '/dashboard',
templateUrl: 'partials/dashboard.html',
controller: 'DashboardCtrl',
resolve:{
check: function($rootScope, $state){
if($rootScope.is_authenticated == true){
return true;
}
else{
$state.go('auth');
}
}
}
})
$urlRouterProvider
.otherwise("/auth");
Login-Funktion in meinem AuthCtrl
//login
$scope.login = function(user){
console.log(user);
$http({
method : "POST",
url : "myapi.com/login",
data : user
}).then(function mySucces(response) {
$scope.data = response.data;
$rootScope.is_authenticated = true;
$state.go('dashbooard');
}, function myError(response) {
$scope.error = response.statusText;
$rootScope.is_authenticated = false;
});
}
Logout-Funktion
$scope.logout = function(){
$rootScope.is_authenticated = false;
$state.go('auth');
}
Ich habe eine andere Eigenschaft zu meinem Zustand hinzugefügt, lösen. Nun kann der Staat nur zugegriffen werden, wenn der Benutzer angemeldet ist. Ist dies der richtige Weg, und wenn nicht, was sind die damit verbundenen Probleme
Wie beharren Sie den Benutzer oder die Authentifizierung, wenn die Seite aktualisiert wird? –
Wenn die Seite aktualisiert wird, oder URL wird in neuem Tab Kopie kleistert. 'if (AuthService.isLoggedIn()) { AuthService.getLoggedInUser() dann (function (Antwort, Status) {' diesen Code macht den Server wieder anrufen – Aks1357
Ich habe den Code aktualisiert, jetzt funktioniert es für mich. Könnten Sie überprüfen, ob es der richtige Weg ist. –