【问题标题】:Route Interception with Angular JS使用 Angular JS 进行路由拦截
【发布时间】:2015-08-03 01:49:54
【问题描述】:

我正在使用 Firebase 作为“后端”在 AngularJS 中构建应用程序。

我想做,所以你必须登录到应用程序才能看到任何东西。

我想使用 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);
            }
        });
    }
})

【问题讨论】:

标签: javascript html angularjs firebase angularfire


【解决方案1】:

您需要为每条路线提供解析功能。

resolve函数应该检查用户的权限,如果用户没有访问路由的权限,你应该将用户重定向到另一个页面。

希望这会有所帮助。

【讨论】:

  • 我已经知道了。不知道该怎么做。我在网上找到的所有东西都使用 $stateProvider 而不是 $routeProvider,我对此非常恼火。如果我用 Codeigniter 和 MYSQL 来构建它,我已经过去了。我在使用 Angular js 时遇到的第一个障碍
  • 你能给我举个例子吗?如果我得到了它,我可能会让它和我的一起工作。
猜你喜欢
  • 2016-11-12
  • 2015-10-11
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多