Новое редактирование: authservice, который проверяет логин:
'use strict';
angular.module('MainApp.login.services', [])
    .factory('authService', ['AUTH_ENDPOINT', 'LOGOUT_ENDPOINT', '$http', '$cookieStore', function (AUTH_ENDPOINT, LOGOUT_ENDPOINT, $http, $cookieStore) {
        var auth = {};
        auth.login = function (username, password) {
            return $http.post(AUTH_ENDPOINT, {username: username, password: password})
                .then(function (response, status) {
                    auth.user = response.data;
                    $cookieStore.put('user', auth.user);
                    return auth.user;
                });
        };
        auth.logout = function () {
            return $http.post(LOGOUT_ENDPOINT).then(function (response) {
                auth.user = undefined;
                $cookieStore.remove('user');
                $cookieStore.remove('event');
            });
        };
        return auth;
    }])
    .value('AUTH_ENDPOINT', 'http://www.mydomain.gr/assets/modules/login/dal/login.php')
    .value('LOGOUT_ENDPOINT', 'http://www.mydomain.gr/assets/modules/login/dal/logout.php');  
Обновлено: 
К сожалению, это часть целого веб-приложения, поэтому я не могу загрузить его на jsfiddle. Я сделал видео youtube, где я точно показываю ошибку при отладке приложения. С минуты 1:30 начинается проблема. Не стесняйтесь изучать видео/
ниже  app.js моего приложения angular.
Могут ли $watch (ы), которые у меня есть в шаблонах, создать ошибку?
Youtube, после 1:30 запускается ошибка: https://www.youtube.com/watch?v=3Cc2--BkdQ4&feature=youtu.be
При первой загрузке сайта экран входа в систему загружается и запрашивает учетные данные.
Если вход в систему пользователя перенаправляется на страницу part4 (изнутри контроллера входа), пока это так хорошо!
Проблема заключается в том, что когда я открываю новую вкладку в браузере, попробуйте загрузить веб-сайт:
-  Он должен видеть, что пользователь уже зарегистрирован и перенаправляет его на страницу part4. 
-  вместо этого, как я вижу при отладке браузера, он переходит к решению: login 
-  Затем он поднимается внутрь $rootScope.$on('$stateChangeError',и доgo.state(part4)
-  Затем он переходит к решению part4, а затем переходит к разрешению входа и снова в функцию $statechangeerror 
5. И наконец, я получаю ошибку: Error: [$rootScope:infdig] http://errors.angularjs.org/1.4.8/$rootScope/infdig?p0=10&p1=%5B%5D
но странно, что он, наконец, перенаправляется на страницу part4, но с этой ошибкой!
Кто-нибудь может мне помочь.
'use strict';
var app = angular.module('MainApp', ['mApp',
    'MainApp.loginModule',
    'MainApp.part4Module',
    'MainApp.part5Module',
    'MainApp.eventModule',
    'ui.router', 'ui.router.tabs', 'ngCookies']);
angular.module('MainApp')
    .run(['$rootScope', '$state', '$cookieStore', 'authService', function ($rootScope, $state, $cookieStore, authService) {
        $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {
            if (error.unAuthorized) {
                $state.go('login');
            }
            else if (error.authorized) {
                $state.go('part4');
            }
        });
        authService.user = $cookieStore.get('user');
    }])
    .config(function ($stateProvider, $urlRouterProvider, $locationProvider) { //$stateProvider & $urlRouterProvider are from ui.router module
        $stateProvider
            .state('floorplan', {
                url: '/floorplan/:activeEventId/:activeHallId/:activeHallVariant',
                controller: 'ParticipantsCtrl',
                templateUrl: '/assets/modules/part1/part1.html',
                resolve: {
                    user: ['authService', '$q', function (authService, $q) {
                        return authService.user || $q.reject({unAuthorized: true});
                    }]
                }
            })
            .state('event', {
                url: '/event/:activeEventId',
                templateUrl: 'assets/modules/event/eventPartial.html',
                controller: 'eventctrl',
                resolve: {
                    user: ['authService', '$q', function (authService, $q) {
                        return authService.user || $q.reject({unAuthorized: true});
                    }]
                }
            })
            .state('part4', {
                url: '/part4',
                resolve: {
                    user: ['authService', '$q', function (authService, $q) {
                        return authService.user || $q.reject({unAuthorized: true});
                    }]
                },
                controller: 'part4ctrl',
                templateUrl: '/assets/modules/part4/part4Partial.html'
            })
            .state('login', {
                url: '/login',
                controller: 'LoginCtrl',
                templateUrl: '/assets/modules/login/login.html',
                resolve: {
                    user: ['authService', '$q', function (authService, $q) {
                        if (authService.user) {   
                         return $q.reject({authorized: true});
                        }
                    }]
                }
            });
        $urlRouterProvider.otherwise('login');
    });
Я загрузил видео на youtube, описывая и показывая ошибку: youtube: https://www.youtube.com/watch?v=3Cc2--BkdQ4&feature=youtu.be

