Esta pregunta se refiere a cómo personalizados se utilizan sistemas de recibir OAuth respuestas, como en mi ejemplo de código que puede ejecutar localmente, a continuación, utilice los enlaces profundos etc:
Puntos de interés:
- Una intersticial página web devuelve el control a la aplicación navegador - ver esta página
- Mi paquete.json expone el esquema para la implementación de Electrones
Esto te dará algo para comparar. Aquí está el código:
INTERSTICIAL DE LA PÁGINA WEB DE LA INVOCACIÓN DE LA APLICACIÓN
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;
};
}
REGISTRAR EL ESQUEMA DE
Este obtiene recogido por el Electrón empaquetador y se incluye en la plataforma específica de los binarios, lo que resulta en OS específicos de registro:
"build": {
"protocols": {
"name": "finaldesktopapp",
"schemes": [
"x-mycompany-desktopapp"
]
}
},
RECIBIR NOTIFICACIONES
Esto permite que el código siguiente para trabajar en el lado principal de la aplicación, como se especifica en el main.ts
archivo:
app.setAsDefaultProtocolClient(this._configuration.oauth.privateSchemeName);
Finalmente registrar una devolución de llamada que se puede analizar la dirección URL y tomar lo que es la acción apropiada - completando un inicio de sesión en mi caso.
private _receiveNotificationInRunningInstance(privateSchemeUrl: string) {
}
La mecánica es un poco complicado y la notificación es recibida de manera diferente en macOS para Windows / Linux. Ver este archivo de origen y sus comentarios que explican los detalles.