我在AngularJS中遇到問題,我似乎無法找到簡單的解決方案。 我正在使用兩項服務來與服務器進行用戶授權。授權基於兩個令牌:訪問令牌和刷新令牌。角度注入循環
現在我有一個服務(Auth)負責整個授權過程和第二個服務(Api),負責與服務器通信。
授權的工作方式是用戶使用他的訪問令牌訪問數據。一旦令牌失效,它將嘗試提交刷新令牌並希望取回新的訪問令牌。
問題是,如果服務器響應401並且令牌無效,我只需運行Auth.authenticate();在後臺(沒有重定向或任何東西),如果成功繼續使用新的訪問令牌。
不幸的是,由於Auth服務使用Api服務,我無法將Auth服務注入到Api服務。有沒有什麼好方法可以在一個全球性的地方做我想做的事情(所以我不需要在控制器中的每一個請求之後調用重新授權)?
一些建築信息:
Auth Service (injects Api Service)
| ---- authorisation function (uses Api Service)
Api Service
| ---- Different functions to prepare data for request
| ---- One function to send all requests
| ---- One function to handle all rejected promisses which includes detection of 401 and should include "silent" re-authorisation (AuthService.authorisation)
我真的希望它不聽起來太混亂。 我試過攔截器,但結果是一樣的 - 噴油器迴路。
我沒有改變我的體系結構,唯一的想法是如果有任何方法可以獲得Auth服務的當前活動實例,因爲無論如何都會加載它。但沒有找到任何細節。
謝謝!
美麗!這正是我需要的 – Tom 2014-12-03 16:45:28