我們使用Azure AD + OpenID連接來保護我們的應用程序。客戶端應用程序是在Angular中開發的,我們正在使用'angular-adal'庫來與azure廣告集成。所以無論何時客戶端使api調用服務器,它都會在請求頭中自動包含不記名令牌。 (在服務器上我們有驗證令牌「護照蔚廣告」節點庫)如何使用帶有不記名令牌的Angular下載文件
我們這是目前吹塑
控制器
$scope.getURL = function (reportId) {
return '/api/reports/download/' + reportId;
};
實現下載文件功能HTML
<form method="get" action="{{getURL(row.id)}}">
<button class="btn btn-link" type="submit">Download Results</button>
</form>
但是它不包括be當我點擊下載按鈕時,在請求中的arer標記,所以服務器返回未授權錯誤。我如何在請求中包含令牌?最好的方法是什麼?
UPDATE1
正如我們推薦的由Angular ADAL庫,我們可以通過在$ routeProvider設置「requiredADLogin」屬性爲true固定路線。像下面一樣
$routeProvider.
when("/todoList", {
controller: "todoListController",
templateUrl: "/App/Views/todoList.html",
requireADLogin: true
});
我正在使用$ stateProvider。我已經用'requiredADLogin'設置了所有其他HTML頁面路由的狀態,並且工作正常。如何爲API路徑設置$ stateProvider。我的下載網址是
'/api/reports/download/'+reportID
參見:HTTP://計算器。 com/questions/25009634/where-should-i-inject-bearer-tokens-into -http-in-angularjs作者建議編寫一個攔截器,將auth令牌插入'$ http'請求中。 – Kyle
@ user3862378請參閱update1 – LP13
您是如何解決您的問題的?我遇到了幾乎相同的問題。在我的Web API中使用ADFS身份驗證下載包含ADAL.js的文件。地獄的網址基本上是一樣的!謝謝 ! – Guigui