zigen
@zigen

Как проверять авторизован ли пользователь angular?

Добрый день.
Хочу в шаблоне проверять авторизован ли пользователь и на основании этого показывать или скрывать элементы навигации. Шаблон такой:
<ul class="nav nav-tabs" ng-controller="AuthController">
      {% verbatim %}
      <li ng-class="getClass('/')"><a href="#/">Главная</a></li>
      <li ng-hide="auth" ng-class="getClass('/login')"><a href="#/login">Войти</a></li>
      <li ng-show="auth" ng-class="getClass('/logout')"><a href="#/logout" ng-click="logout()">Выйти</a></li>
      <li ><a href="">{{ auth }}</a></li>
      {% endverbatim %}
    </ul>


Контролер:

function AuthController($scope, $location, $http){
    $scope.logout = function() {
      $http.get('api/auth/logout/').success(function(){
      $scope.auth = false;
      $location.path('/login');
      });
    };
    $scope.login = function() {
    $http({
        method: 'POST',
        url: 'api/auth/login/',
        data: $scope.user
    })
    .success(function(data){
        $scope.auth = true;
        $location.path('/');
    });
    }
}


После успешной аутентификации создаю переменную в scope с именем пользователя. В случае логаута соответственно назначаю андефайнед.
Однако в шаблоне переменная auth пустая, $scope.auth = data.username; работает корректно
  • Вопрос задан
  • 426 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы