Ok, also die richtige Antwort ist definitiv config.displayCall zu verwenden. Allerdings wird displayCall während app.config mit adal-eckigen konfiguriert, was es ziemlich unmöglich macht, in eckigen wirklich zu verwenden .. Also hier sind ein paar Code zwickt Sie hinzufügen können, um Winkel Adal-so, dass Sie auch die Kontrolle übernehmen kann (wenn Sie benötigen) ..
1) die folgende var/Funktion in Ihrem Provider hinzufügen (ich habe es um die Linie 48)
var internalDisplayCall = function (url) {
if (userDefinedDisplayCall) {
userDefinedDisplayCall(url);
} else {
if (_adal.popUp) {
_adal._loginPopup(url);
}
else {
_adal.promptUser(url);
}
}
}
Das ist so ziemlich die gleiche Logik wie in Bezug auf, ob es eine DisplayCall-Methode gibt oder nicht.
2) eine var für userDefinedDisplayCall um die gleiche Fläche
var userDefinedDisplayCall = undefined;
3) fügen Sie den Kontext benötigt, weil es keine „durchfallen“ Verhalten displayCall ist das Standardverhalten in adal zu verwenden (oder in meinem Kopie davon, wie sich adal verhält. Fügen Sie das also Ihrem Provider im zurückgegebenen Objekt hinzu. (Ich tat dies, um die Linie 390)
context: _adal,
4) fügen Sie eine Methode Methode zu setzen userDefinedDisplayCall und fügt hinzu, dass zu Ihrer Rückkehr Objekt als auch .. Ich habe das inline im Rück Objekt, also wieder um die Linie 390
setDisplayCall: function (newDisplayCall) {
if (newDisplayCall && typeof newDisplayCall !== 'function') {
throw new Error('displayCall is not a function');
}
userDefinedDisplayCall = newDisplayCall;
}
Gerade jetzt können Sie Ihre adalServiceProvider in app.config mit azur AD Mieter, Ihre appId, konfigurieren und alles, was Jazz erforderlich, dann können Sie adalService in app.run injizieren und die displayCall konfigurieren, so können Sie Ihre injizieren eigenes Verhalten ...
Kannst du mehr auf die lokale ca che Lagerung? –
Also lokalen Cache wäre was auch immer Aktivität der Benutzer offline tun, verschlüsseln Sie den lokalen Speicher mit dem Benutzer "pin" und speichern Sie dann einen Hash der PIN für die Offline-Authentifizierung ... Aus einer ADAL-Perspektive möchte ich nur wissen, ob dort ist ein Weg, um es "zu fälschen" in Bezug auf den Benutzer angemeldet und so, wenn es online ist ... Ich habe einige Dinge rund um mit DisplayCall gelesen .. Das funktioniert jedoch nur, wenn Sie den Kontext haben, auf den Sie keinen Zugriff haben über das adal-eckige Modul in eckig. –
Immer noch ein kleines Problem, aber ich kann mit DisplayCall sprechen. Mit dem displayCall übergeben Sie die Kontrolle an die App, wenn Sie login() aufrufen, bevor Sie eine Auth-Anfrage umleiten und auslösen. Im Grunde werden Sie einen Rückruf bereitstellen, und ADAL.js wird es tun und kurz vor dem Starten der Anfrage anhalten und Ihrer App die erstellte Authentifizierungs-URL übergeben. Ihre App kann dann ein beliebiges Stück davon modifizieren/anhängen/löschen und dann die Anfrage von Hand beenden. [Checkout dieses GitHub-Problem] (https: // github.com/AzureAD/azure-activedirectory-library-for-js/issues/462) für zu konfigurierende Code-Schritte. –