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

AngularJS實現(xiàn)用戶登錄狀態(tài)判斷的方法(Model添加攔截過濾器,路由增加限制)

 更新時間:2016年12月12日 10:19:06   作者:qq_26702065  
這篇文章主要介紹了AngularJS實現(xiàn)用戶登錄狀態(tài)判斷的方法,通過Model添加攔截過濾器,路由增加限制實現(xiàn)針對登陸狀態(tài)的判斷功能,需要的朋友可以參考下

本文實例講述了AngularJS實現(xiàn)用戶登錄狀態(tài)判斷的方法。分享給大家供大家參考,具體如下:

使用AngularJS的單頁面應(yīng)用時,由于是本地路由在控制頁面跳轉(zhuǎn),但是有的時候我們需要判斷用戶是否登錄來判斷用戶是否能進入界面。

angularjs是mvc架構(gòu)所以實現(xiàn)起來很容易也很靈活,我們只MainController里增加一個路由事件偵聽并判斷,這樣就可以避免未登錄用戶直接輸入路由地址來跳轉(zhuǎn)到登錄界面地址了

代碼中的 $rootScope.user是登錄后把用戶信息放到了全局rootScope上,方便其他地方使用,$rootScope.defaultPage也是默認主頁面,初始化的時候?qū)懰赖絩ootScope里的。

$rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){
  if(toState.name=='login')return;// 如果是進入登錄界面則允許
  // 如果用戶不存在
  if(!$rootScope.user || !$rootScope.user.token){
    event.preventDefault();// 取消默認跳轉(zhuǎn)行為
    $state.go("login",{from:fromState.name,w:'notLogin'});//跳轉(zhuǎn)到登錄界面
  }
});

另外還有用戶已經(jīng)登錄,但是登錄超時了,還有就是增加后臺接口的判斷來增強安全性。不能完全依靠本地邏輯

我們在model里面增加一個用戶攔截器,在rensponseError中判斷錯誤碼,拋出事件讓Contoller或view來處理

app.factory('UserInterceptor', ["$q","$rootScope",function ($q,$rootScope) {
  return {
    request:function(config){
      config.headers["TOKEN"] = $rootScope.user.token;
      return config;
    },
    responseError: function (response) {
      var data = response.data;
      // 判斷錯誤碼,如果是未登錄
      if(data["errorCode"] == "500999"){
        // 清空用戶本地token存儲的信息,如果
        $rootScope.user = {token:""};
        // 全局事件,方便其他view獲取該事件,并給以相應(yīng)的提示或處理
        $rootScope.$emit("userIntercepted","notLogin",response);
      }
      // 如果是登錄超時
      if(data["errorCode"] == "500998"){
        $rootScope.$emit("userIntercepted","sessionOut",response);
      }
      return $q.reject(response);
    }
  };
}]);

別忘了要注冊攔截器到angularjs的config中哦

app.config(function ($httpProvider) {
  $httpProvider.interceptors.push('UserInterceptor');
});

最后在controller中處理錯誤事件

$rootScope.$on('userIntercepted',function(errorType){
  // 跳轉(zhuǎn)到登錄界面,這里我記錄了一個from,這樣可以在登錄后自動跳轉(zhuǎn)到未登錄之前的那個界面
  $state.go("login",{from:$state.current.name,w:errorType});
});

最后還可以在loginController中做更多的細節(jié)處理

// 如果用戶已經(jīng)登錄了,則立即跳轉(zhuǎn)到一個默認主頁上去,無需再登錄
if($rootScope.user.token){
  $state.go($rootScope.defaultPage);
  return;
}

另外在登錄成功回調(diào)后還可以跳轉(zhuǎn)到上一次界面,也就是上面記錄的from

var from = $stateParams["from"];
$state.go(from && from != "login" ? from : $rootScope.defaultPage);

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS入門與進階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對大家AngularJS程序設(shè)計有所幫助。

相關(guān)文章

  • Angularjs Ng_repeat中實現(xiàn)復選框選中并顯示不同的樣式方法

    Angularjs Ng_repeat中實現(xiàn)復選框選中并顯示不同的樣式方法

    今天小編就為大家分享一篇Angularjs Ng_repeat中實現(xiàn)復選框選中并顯示不同的樣式方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • AngularJs實現(xiàn)聊天列表實時刷新功能

    AngularJs實現(xiàn)聊天列表實時刷新功能

    這篇文章主要介紹了AngularJs實現(xiàn)聊天列表實時刷新功能,需要的朋友可以參考下
    2017-06-06
  • Angularjs 滾動加載更多數(shù)據(jù)

    Angularjs 滾動加載更多數(shù)據(jù)

    AngularJS 通過新的屬性和表達式擴展了 HTML。本文主要給大家介紹Angularjs 滾動加載更多數(shù)據(jù)的相關(guān)知識,需要的朋友參考下吧
    2016-03-03
  • 使用AngularJS處理單選框和復選框的簡單方法

    使用AngularJS處理單選框和復選框的簡單方法

    這篇文章主要介紹了使用AngularJS處理單選框和復選框的方法,在AngularJS表單的基礎(chǔ)之上編寫起來非常簡單,需要的朋友可以參考下
    2015-06-06
  • angularjs實現(xiàn)多選框分段全選效果實現(xiàn)

    angularjs實現(xiàn)多選框分段全選效果實現(xiàn)

    這篇文章主要為大家介紹了angularjs實現(xiàn)多選框分段全選效果實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • angularjs 源碼解析之scope

    angularjs 源碼解析之scope

    $scope 的使用貫穿整個 Angular App 應(yīng)用,它與數(shù)據(jù)模型相關(guān)聯(lián),同時也是表達式執(zhí)行的上下文.有了 $scope 就在視圖和控制器之間建立了一個通道,基于作用域視圖在修改數(shù)據(jù)時會立刻更新 $scope,同樣的 $scope 發(fā)生改變時也會立刻重新渲染視圖.
    2016-08-08
  • AngularJS利用Controller完成URL跳轉(zhuǎn)

    AngularJS利用Controller完成URL跳轉(zhuǎn)

    本文的主要內(nèi)容是介紹在AngularJS中怎樣利用Controller實現(xiàn)URL跳轉(zhuǎn),本文給出了實例代碼,簡單明了,有需要的可以參考學習。
    2016-08-08
  • Angular.js前臺傳list數(shù)組由后臺spring MVC接收數(shù)組示例代碼

    Angular.js前臺傳list數(shù)組由后臺spring MVC接收數(shù)組示例代碼

    這篇文章主要給大家介紹了關(guān)于Angular.js前臺傳list數(shù)組之后,由后臺spring MVC接收數(shù)組的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-07-07
  • angular4 JavaScript內(nèi)存溢出問題

    angular4 JavaScript內(nèi)存溢出問題

    本篇文章主要介紹了angular4 JavaScript內(nèi)存溢出問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • NodeJs——入門必看攻略

    NodeJs——入門必看攻略

    下面小編就為大家?guī)硪黄狽odeJs——入門必看攻略。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06

最新評論