Problema ao verificar se um usuário está autenticado no AngularJS

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.