No mês passado, eu estava codificando uma bela porção de software quando me deparei com um pequeno problema quando se tratava de verificar se um usuário já estava autenticado.
A questão era que se um usuário atualizasse o navegador, o token de autenticação desapareceria ou se o usuário mudasse a rota do aplicativo, o token não seria verificado.
A solução que encontrei foi a seguinte:
//when the application runs
//Session, is a service that takes care of the session persistence
app.run(function ($rootScope, $location, Session, $timeout) {
// register listener to watch for route changes
// this event will fire every time the route changes
$rootScope.$on("$routeChangeStart", function (event, next, current) {
//ask the service to check if the user is in fact logged in
if (!Session.isUserLoggedIn()) {
// no logged user, we should be going to the login route
if (next.templateUrl == "partials/login.html") {
// already going to the login route, no redirect needed
} else {
// not going to the login route, we should redirect now
$location.path("/login");
}
}
});
});
Espero que isso tenha esclarecido o seu software assim como o meu.