2013-11-22 57 views
2

在我的應用程序中,我有一個用於身份驗證的令牌機制。每個API調用都需要令牌,否則它會返回一個401. 我可以使用響應攔截器輕鬆處理。如何捕獲401我無法訪問的部分?

現在,當我使用常規路由,並說令牌過期,並且我嘗試訪問需要身份驗證的部分時,我將如何捕獲路由時獲得的401?

在頁面出現的第一件事是進行API調用時,我會知道令牌過期並將註銷用戶。

我希望能夠阻止用戶訪問視圖,如果令牌已過期。 響應攔截器是否也會處理這種情況?

+0

響應攔截器攔截利用服務$ HTTP,其中包括局部視圖中的所有要求而作出(NG - 包括)請求。 – Chandermani

+0

,當我們在ng視圖中改變什麼時,它們是否攔截請求? –

+1

是的。你可以把斷點和驗證。 – Chandermani

回答

1

如果您想要針對部分進行特殊處理,您可以創建一個解析函數來檢查定義的部分並採取適當的操作。它看起來是這樣的:

function CheckTemplate() { 
    return { 
     "TemplateCheck": function ($route, $http) { 
      var url = $route.current.templateUrl; 

      $http.get(url) 
       .error(function(data, status, headers, config) { 
       if (status===404) { 
        ... // Do what you need to do 
       } 
       }) 
     } 
    } 
} 

下面是一個簡單plunker爲404的部分檢查:

http://plnkr.co/edit/4tagMIlcH0jC1A0YODRt?p=preview

+0

如果我不提供解析器功能,而控制權轉移到其他位置? –

+1

如果你不使用解析器功能,並且在加載templateUrl時出現錯誤,你只會在你的JavaScript控制檯中出現錯誤。你的用戶不會看到任何東西。 – marcoseu