【问题标题】:In Angularjs, how to block user approaching to some pages?在 Angularjs 中,如何阻止用户访问某些页面?
【发布时间】:2017-10-25 07:15:27
【问题描述】:

我使用ui-router$stateProvider 来显示视图。

本项目用于搭建管理页面,一共有三个账号。

我的目的是某些页面必须只显示给每个帐户。

所以,我用ng-if 不显示在nav-bar 上,它成功了。

但是如果输入它的 url 并直接接近,这些页面就会显示出来。

有没有办法在 `configs' 中创建分支?或其他方法来解决这个问题?

我觉得这个问题不需要发fiddle或者plunker,

所以我刚刚输入了configs 的代码。

$urlRouterProvider.otherwise('/admin/login');
$stateProvider
.state('root.for_a', {
    url: '/:brand_id/for_a',
    views: {
        'appContainer@': {
            templateUrl: 'views/for_a.html',
            controller: 'ForACtrl',
        }
    }
})
.state('root.for_b', {
    url: '/:brand_id/for_b',
    views: {
        'appContainer@': {
            templateUrl: 'views/for_b.html',
            controller: 'ForBCtrl',
        }
    }
})
.state('root.for_c', {
    url: '/:brand_id/for_c',
    views: {
        'appContainer@': {
            templateUrl: 'views/for_c.html',
            controller: 'ForCCtrl',
        }
    }
})

我会等待任何英俊或漂亮的程序员可以帮助我。 :)

提前致谢。

【问题讨论】:

  • 如果我理解正确,您想通过 angularjs 保护页面。我永远不会相信客户端代码来实现安全性,因为客户端脚本很容易被篡改。如果您真的想要严格的安全性,请选择服务器端方法。
  • @Verthosa 感谢您的评论。我有一个问题,我只能构建客户端..
  • 在 ui-router 中使用解析:- stackoverflow.com/questions/28518181/…
  • @AnmolMittal 感谢您提供这个很棒的解决方案链接! +10!!
  • ........干杯!

标签: javascript angularjs angular-ui-router angularjs-config


【解决方案1】:

我为克服类似问题所做的是,在“ui-view”标签上使用“ng-if”。

 <ui-view ng-if="functionToEvaluatePermissions()"></ui-view>
 <span ng-if="!functionToEvaluatePermissions()"> You shouldn't be here. </span>

【讨论】:

  • 哦,我认为这是一个非常有吸引力的解决方案。我也考虑过这个,但想知道是否有更专业的解决方案。
  • 如果没有比这更好的解决方案,那么我会选择你的答案。 :) 谢谢你的回答。
猜你喜欢
  • 2010-10-13
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多