Questa domanda si riferisce a come schemi personalizzati vengono utilizzati per ricevere OAuth risposte, come nel mio esempio di codice che è possibile eseguire in locale, quindi utilizzare il deep linking, ecc:
Punti di interesse:
- Un interstiziale pagina web restituisce il controllo al browser app - vedere questa pagina
- Il mio pacchetto.json espone lo schema per la distribuzione di Elettroni
Questo dovrebbe dare qualcosa da confrontare. Ecco il codice:
INTERSTIZIALE PAGINA WEB INVOCANDO APP
window.addEventListener('DOMContentLoaded', function() {
var redirectUri = 'x-mycompany-desktopapp:/callback';
if (window.location.search) {
redirectUri += window.location.search;
}
document.getElementById('continueButton').onclick = function() {
window.location.href = redirectUri;
};
}
LA REGISTRAZIONE DEL REGIME
Questo viene raccolto dall'Elettrone packager e incluso nella piattaforma di file binari specifici, con conseguente specifiche del sistema operativo di registrazione:
"build": {
"protocols": {
"name": "finaldesktopapp",
"schemes": [
"x-mycompany-desktopapp"
]
}
},
LA RICEZIONE DELLE NOTIFICHE
Questo consente il codice riportato di seguito per lavorare nel lato principale della app, come specificato nel main.ts
file:
app.setAsDefaultProtocolClient(this._configuration.oauth.privateSchemeName);
Infine si registra un callback che l'URL di analizzare e prendere ciò che è l'azione appropriata - il completamento di un account di accesso nel mio caso.
private _receiveNotificationInRunningInstance(privateSchemeUrl: string) {
}
La meccanica è un po ' difficile e la notifica è stata ricevuta in modo diverso su macOS per Windows / Linux. Vedere questo file di origine e i suoi commenti, il che spiega i dettagli.