2015-08-03 4 views
0

Я создаю приложение в AngularJS, используя Firebase как «backend».Перехват маршрута с угловым JS

Я хочу сделать это, поэтому вам нужно войти в приложение, чтобы увидеть что-нибудь.

Я хочу использовать систему аутентификации пользователей Firebase.

Я использую routeProvider для маршрутизации моего приложения.

Мой вопрос в том, как вы ограничиваете эти маршруты для входа в систему пользователями и разрешаете пользователям не войти в систему, чтобы увидеть страницу входа?

Мои маршруты выглядеть следующим образом: (коротко)

angular.module('myApp', ['ngRoute', 'firebase', 'components', 'ng-breadcrumbs', 'clients']) 

.constant('fbUrl', 'https://my-billing.firebaseio.com/') 

.config(function($routeProvider) { 

    $routeProvider 
     // Pages // 
     .when('/', { 
      //controller:'DashboardController as dashboard', 
      templateUrl:'pages/dashboard.html', 
     }) 
     .when('/dashboard', { 
      //controller:'DashboardController as dashboard', 
      templateUrl:'pages/dashboard.html', 
      label: 'Dashboard', 
     }) 
     .when('/settings', { 
      //controller:'SettingsController as settings', 
      templateUrl:'pages/settings.html', 
      label: 'Settings', 
     }) 

Моя функция Войти выглядит следующим образом:

angular.module('auth', ["firebase"]) 

.constant('fbUrl', 'https://my-billing.firebaseio.com/') 

.controller('authController', function($scope, Firebase, $firebaseArray, fbUrl) { 

    var auth = this; 
    var ref = new Firebase(fbUrl); 

    auth.password = function() { 
     ref.authWithPassword({ 
      email : auth.email, 
      password : auth.password 
     }, function(error, authData) { 
      if (error) { 
       console.log("Login Failed!", error); 
      } else { 
       console.log("Authenticated successfully with payload:", authData); 
      } 
     }); 
    } 
}) 
+0

Сначала вам необходимо создать службу для обработки аутентификации базы огня. Вы используете угловой огонь? – Matthew

+1

Посмотрите на это https://www.firebase.com/docs/web/libraries/angular/guide/user-auth.html#section-routers –

+0

Видимо, я полностью слеп. Спасибо – moevans

ответ

0

Вы должны были бы иметь функцию разрешить для каждого маршрута.

Функция разрешения должна проверять разрешения пользователя, и если у пользователя нет разрешения на доступ к маршруту, вы должны перенаправить пользователя на другую страницу.

Надеюсь, это поможет.

+0

Я уже знал это. Не волнуйся, как это сделать. все, что я нашел в Интернете, использует $ stateProvider, а не $ routeProvider, и я очень раздражен этим. Если бы я строил это с помощью Codeigniter и MYSQL, я бы уже прошел мимо него. Первое препятствие, которое у меня было с угловыми js – moevans

+0

Можете ли вы привести мне пример того, как можно смотреть? Если бы у меня это получилось, я мог бы заставить его работать с моим. – moevans

Смежные вопросы