AngularJs - melhor maneira de limitar o acesso a usuários "logados"

Eu estou lutando com a criação de um sistema de login para um aplicativo que estou criando.

Eu sou capaz de definir cookies para quando o usuário está logado ou desconectado. Eu não acho que testar todas as visualizações se o usuário está logado é uma solução muito elegante, e eu tenho medo que uma página aqui e ali possa cair através das rachaduras (é um aplicativo bastante grande).

Eu estou pensando que a melhor maneira seria interceptar as alterações de rota de alguma forma e verificar se o usuário está logado, caso contrário, enviá-los para uma página de login / criar usuário. Eu encontrei alguns métodos, mas nada parece ser oficialmente documentado. Alguém já usou esse tipo de método em um caso do mundo real e foi eficaz?

Meu arquivo de rota é assim:

'use strict';

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        // LOGIN
        .when('/User/LoginUser', {templateUrl: 'views/user/login.html',controller: 'loginCtrl'})

    ....... more routes here.......

        // DEFAULT
        .otherwise({redirectTo: '/'});
}]);

Qualquer ajuda ou sugestão, ou aponta para exemplos documentados do mundo real de como eu faria algo assim, seria muito apreciada!

questionAnswers(2)

yourAnswerToTheQuestion