好的,所以正確的答案是肯定使用config.displayCall ..但是displayCall是在app.config中配置adal-angular,這幾乎使得它不可能真正用在角度..所以這裏有幾個代碼調整你可以添加到阿達爾棱角,這樣你也可以採取控制(如果需要)..
1)在你的軟件中添加以下VAR /功能(我做到了圍繞48行)
var internalDisplayCall = function (url) {
if (userDefinedDisplayCall) {
userDefinedDisplayCall(url);
} else {
if (_adal.popUp) {
_adal._loginPopup(url);
}
else {
_adal.promptUser(url);
}
}
}
這與adal中關於是否存在displayCall方法的邏輯幾乎相同。
2)添加一個變種爲userDefinedDisplayCall大約在同一區域
var userDefinedDisplayCall = undefined;
3)你需要的背景下,因爲沒有行爲「通過落」到displayCall使用在阿達爾默認行爲(或在我副本如何行事),所以將其添加到返回對象中的提供程序中。 (我這樣做是圍繞線390)
context: _adal,
4)添加一個方法來設置userDefinedDisplayCall方法和添加到您的返回對象以及..我沒有在返回的對象是內聯,如此反覆左右線390
setDisplayCall: function (newDisplayCall) {
if (newDisplayCall && typeof newDisplayCall !== 'function') {
throw new Error('displayCall is not a function');
}
userDefinedDisplayCall = newDisplayCall;
}
現在你可以用你的蔚藍AD租戶,你的appid配置的app.config你adalServiceProvider,而且要求所有的爵士樂,那麼您可以在app.run注入adalService和配置displayCall所以你可以注入你的自己的行爲...
你可以擴大本地ca存儲? –
因此,本地緩存將是用戶在離線時進行的活動,使用用戶「pin」對本地存儲進行加密,然後存儲用於離線身份驗證的引腳散列......從ADAL角度來看,我只想知道是否存在是一種「僞裝」的方式,關於用戶登錄和當它的在線時......我已經閱讀了一些使用displayCall的東西..但是,這隻適用於如果你有上下文,你沒有訪問通過adal-angular模塊成角度。 –
仍然有一點問題的理解,但我可以說到displayCall。在重定向和激活身份驗證請求之前調用login()時,使用displayCall將控制權交給應用程序。基本上,你會提供一個回調,ADAL.js會做這件事,並在開始請求之前停下來,並將你的應用程序傳遞給構建的auth URL。然後,您的應用程序可以修改/附加/刪除任何一部分,然後手動完成請求。 [檢出這個github問題](https:// github。com/AzureAD/azure-activedirectory-library-for-js/issues/462)來配置代碼步驟。 –