Sto cercando un modo per fare queste due cose, prima voglio reindirizzare l'utente a una pagina di accesso se non viene trovato SessionID e in secondo luogo vorrei sentire la tua opinione sull'ID sessione persistente solo in memoria (nessun cookie).AngularJS - Reindirizza alla pagina di accesso e Persistenza dell'ID sessione
La soluzione mi è venuta per il reindirizzamento è:
1 - Creazione di un servizio chiamato OAuth che controllerà se SessionID esiste e se non, reindirizza alla pagina di login, il servizio è anche responsabile per l'accesso e la metodi di logout.
app.factory('OAuth', ['$http', function ($http) {
var _SessionID = '';
return {
login: function() {
//Do login ans store sessionID in var _SessionID
},
logout: function() {
//Do logout
},
isLoggedIn: function() {
if(_SessionID) {
return true;
}
//redirect to login page if false
}
};
}]);
2 - Iniettare il nuovo servizio di OAuth in ogni controller e verificare se l'utente isLoggedIn
app.controller('myCtrl', ['$scope', 'OAuth', function ($scope, OAuth) {
//check if user is logged
OAuth.isLoggedIn();
}]);
Domande:
1 - Il metodo isLoggedIn() sarà chiamato in tutti i controller, in modo Mi chiedo se c'è un modo per farlo senza dover iniettare il servizio e chiamarlo in ogni controller.
2 - Invece di avere un cookie per memorizzare l'ID sessione, voglio salvarlo nella variabile _SessionID di OAuth e per ogni richiesta inviarlo al server. È un approccio fattibile/sicuro? Puoi darmi qualche idea per questo?
Grazie!
Nice. Grazie per il suggerimento Dan! – Bema
Anche la [scrittura sull'approccio] (http://www.espeo.pl/2012/02/26/authentication-in-angularjs-application) è molto utile. –