亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Angularjs中的頁面訪問權(quán)限怎么設(shè)置

 更新時間:2016年11月11日 08:41:10   作者:薛陳磊  
最近一直在忙一個手機端的項目,所以對js學習有點松撤了。今天小編抽時間跟大家分享一篇關(guān)于angularjs中的頁面訪問權(quán)限設(shè)置教處,對angularjs訪問權(quán)限感興趣的朋友一起學習吧

  在以往的項目中,前后端常見的配合方式是前端提供頁面和ui加一點DuangDuangDuang的效果,后端搭建框架數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)交互(數(shù)據(jù)交互前后端有交集),不管是.net、java or php都能一對多的提供前端服務(wù),然而在新形式下項目中運用了前端框架,開發(fā)情況就不一樣了,比如我要說的這是在angular框架下完成的開發(fā),模式是后端提供服務(wù)和api文檔,頁面和數(shù)據(jù)交互及邏輯處理由前端完成,前端儼然是個完全的programer了,這個過程中就會遇到之前意想不到的問題(如果沒有做過后端開發(fā)),比如頁面權(quán)限控制,不得不說,使用前端的方式去做這些設(shè)置比較糾結(jié),因為這方面的數(shù)據(jù),也就是這些權(quán)限的‘標示',后端運行的時候是可以直接獲得的,即像獲取字段數(shù)據(jù)a.b點一下就出來了,而前端只能用http請求的方式獲取,繁瑣麻煩;

  其實在ng中做頁面訪問權(quán)有很多種方法,各有利弊,運用的比較多的是攔截器,攔截器使得在前端往后端發(fā)送http請求之前或之后做一些操作,比如全局監(jiān)測用戶是否登錄,沒登陸就要跳轉(zhuǎn)的登錄頁面,登錄就可以訪問頁面;攔截器的使用往往配合后臺數(shù)據(jù),也就是獲取到最新的‘標示',來確定這個頁面或者下個頁面要做什么操作;而這里我使用的是一種用前端控制的方式,不用數(shù)據(jù)交互,理念就是定義好不同等級/階段可以訪問的頁面,在路由的地方作攔截,針對一些不同等級/階段訪問權(quán)限定義明確的可以參考使用這種方法,代碼如下:

......
app.run(['$rootScope', '$state', '$window', function($rootScope, $state, $window) {
$rootScope.$on('$stateChangeStart', function(event, toState, toStateParams) {
//用戶訪問等級階段, 0 1 2
Array.prototype.contains = function(needle) {
for(i in this) {
if(this[i] == needle) return true;
}
return false;
}
var status=new Array("user.a","user.b","user.c","user.d","user.e","user.f","user.g");
var status0=new Array("user.a","user.b");
var status1=new Array("user.c","user.d");
var status2=new Array("user.a","user.b","user.c","user.d"); 
     if (status.contains(toState.name)) {
       if(initObj.getStatus()=="0"){
if(!status0.contains(toState.name)){
event.preventDefault();
$state.go('user.approve');
}
return;
}
if(initObj.getStatus()=="1"){
if(!status1.contains(toState.name)){
event.preventDefault();
$state.go('user.result');
}
return;
}
if(initObj.getStatus()=="2"){
if(!status2.contains(toState.name)){
event.preventDefault();
$state.go('user.result');
}
return;
}
}
})
}])
......

  如碼所示,在ng的run里加上state監(jiān)聽(我這里使用了an-route-ui),當監(jiān)聽到路由跳轉(zhuǎn)的時候就進行檢測,這里設(shè)想的可訪問‘標示'的status數(shù)組里包含每個層級/階段可訪問的頁面/路由,比如status里是需要檢測的全集,status0、1 2分別是不同的層級/階段的權(quán)限訪問集合,也即是ng中路由跳轉(zhuǎn)的哈希值,也就代表了可訪問的頁面,利用這種檢測手段,沒有訪問權(quán)限的用戶就不能訪問某些頁面,比如用戶a的的層級階段配置是status1,包含user.c和user.d,initObj.getStatus()返回了他的狀態(tài)碼是1,當他想訪問user.a頁面的時候,就會進入initObj.getStatus()=="1"的判斷,但是他的配置可訪問頁面不包括user.a,也即!status1.contains(toState.name)(toState.name返回要跳轉(zhuǎn)的頁面,這里返回user.a),接下來進入下面的操作,進入公共頁面或提示頁面,原理基本是這樣;

  當然,這種方式跟后端的控制來說,是非常不安全的,也不嚴謹,因為就算項目中腳本進行發(fā)布壓縮混淆后,細細瀏覽還是能找到這里的設(shè)置痕跡的,并且腳本在運行之前是可編輯的,這就會造成很大的漏洞;不過在一些小項目中使用這些配置夠用了,并且就算有人修改了這個status配置,數(shù)據(jù)什么的都是從后端請求的,狀態(tài)不對也請求不到數(shù)據(jù)的,所以攻陷數(shù)據(jù)庫才算是真黑,從前端的腳本做攔截只是玩玩測試;

  繼續(xù)發(fā)掘其他的優(yōu)化方法,有大神有更好的方法可以交流下;先到這里吧。

  還有,光棍節(jié)到了,祝廣大單身狗早日脫單。嘿嘿~~~~

相關(guān)文章

  • 淺析AngularJS中的指令

    淺析AngularJS中的指令

    指令(Directives)是所有AngularJS應(yīng)用最重要的部分。盡管AngularJS已經(jīng)提供了非常豐富的指令,但還是經(jīng)常需要創(chuàng)建應(yīng)用特定的指令
    2016-03-03
  • 在JavaScript的AngularJS庫中進行單元測試的方法

    在JavaScript的AngularJS庫中進行單元測試的方法

    這篇文章主要介紹了在JavaScript的AngularJS庫中進行單元測試的方法,主要針對AngularJS中的控制器相關(guān),需要的朋友可以參考下
    2015-06-06
  • AngularJS的ng-click傳參的方法

    AngularJS的ng-click傳參的方法

    本篇文章主要介紹了AngularJS的ng-click傳參的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • jquery操作angularjs對象

    jquery操作angularjs對象

    這篇文章主要介紹了jquery操作angularjs對象的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • AngularJS實現(xiàn)一次監(jiān)聽多個值發(fā)生的變化

    AngularJS實現(xiàn)一次監(jiān)聽多個值發(fā)生的變化

    這文章給大家介紹了如何利用AngularJS一次監(jiān)聽多個值發(fā)生的變化,文中通過示例代碼演示,這樣更方便大家理解學習,有需要的可以參考借鑒。
    2016-08-08
  • 關(guān)于 angularJS的一些用法

    關(guān)于 angularJS的一些用法

    這篇文章主要介紹了關(guān)于 angularJS的一些用法的相關(guān)資料,需要的朋友可以參考下
    2017-11-11
  • 使用ngView配合AngularJS應(yīng)用實現(xiàn)動畫效果的方法

    使用ngView配合AngularJS應(yīng)用實現(xiàn)動畫效果的方法

    這篇文章主要介紹了使用ngView配合AngularJS應(yīng)用實現(xiàn)動畫效果的方法,AngularJS是十分熱門的JavaScript庫,需要的朋友可以參考下
    2015-06-06
  • angular ngClick阻止冒泡使用默認行為的方法

    angular ngClick阻止冒泡使用默認行為的方法

    這篇文章主要介紹了angular ngClick阻止冒泡使用默認行為的方法,較為詳細的分析了AngularJS中ngClick事件執(zhí)行原理與阻止冒泡的實現(xiàn)技巧,需要的朋友可以參考下
    2016-11-11
  • Angular 4依賴注入學習教程之組件服務(wù)注入(二)

    Angular 4依賴注入學習教程之組件服務(wù)注入(二)

    大家都知道依賴注入式AngularJS的重要特性之一,之前我們已經(jīng)介紹了關(guān)于Angular 4依賴注入基礎(chǔ)的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Angular 4依賴注入之組件服務(wù)注入的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • Angular本地存儲安全分析詳解

    Angular本地存儲安全分析詳解

    這篇文章主要為大家介紹了Angular本地存儲安全分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論