AngularJS: ¿Proteger rutas con angularjs dependiendo de si el usuario está autorizado?

Acabo de empezar a trabajar con unAngularJS La aplicación estoy desarrollando, todo va bien, pero necesito una forma de proteger las rutas para que un usuario no pueda ir a esa ruta si no ha iniciado sesión. Entiendo la importancia de la protección en el lado del servicio también. se encargará de esto

He encontrado varias formas de proteger al cliente, una parece usar las siguientes

$scope.$watch(
    function() {
        return $location.path();
    },
    function(newValue, oldValue) {
        if ($scope.loggedIn == false && newValue != '/login') {
            $location.path('/login');
        }
    }
);

¿Dónde necesito poner esto, en el.run en elapp.js?

Y la otra manera que he encontrado es usando una directiva y usando un - rutechagestart

la informacion esta aquihttp://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app

Realmente me interesaría la ayuda y los comentarios sobre la forma recomendada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta