2016-05-31 12 views
9

Questa è principalmente una mancanza di comprensione di oauth2 e probabilmente non specifica dell'elettrone, tuttavia sto cercando di capire come qualcuno gestirà un URL di reindirizzamento oauth2 da un piattaforma desktop, come l'elettrone?Gestione di reindirizzamento oauth2 da elettrone (o altre piattaforme desktop)

Supponendo che non vi sia alcuna configurazione del servizio web come parte dell'app, come un'applicazione desktop richiedere a un utente le credenziali di un servizio oauth2 di terzi e quindi autenticarle correttamente?

risposta

7

Electron JS esegue un'istanza del browser sul localhost. Pertanto, è possibile gestire un URL di reindirizzamento oauth2 fornendo un URL di richiamata di https: localhost/qualunque/percorso/si/desidera. Assicurati di inserirlo nella pagina di registrazione delle app oauth2 per qualsiasi servizio tu stia utilizzando.

Esempio:

var authWindow = new BrowserWindow({ 
    width: 800, 
    height: 600, 
    show: false, 
    'node-integration': false, 
    'web-security': false 
}); 
// This is just an example url - follow the guide for whatever service you are using 
var authUrl = 'https://SOMEAPI.com/authorize?{client_secret}....' 

authWindow.loadURL(authUrl); 
authWindow.show(); 
// 'will-navigate' is an event emitted when the window.location changes 
// newUrl should contain the tokens you need 
authWindow.webContents.on('will-navigate', function (event, newUrl) { 
    console.log(newUrl); 
    // More complex code to handle tokens goes here 
}); 

authWindow.on('closed', function() { 
    authWindow = null; 
}); 

un sacco di ispirazione tratta da questa pagina: http://manos.im/blog/electron-oauth-with-github/

+1

Sto usando Electron per l'autenticazione di Spotify. Per fare ciò ho bisogno di passare l'URI di Redirezione all'interno di 'authUrl'. Come posso usare qualcosa come "https: // localhost/callback' quando non si usa qualcosa come il modulo" express "di Node.js per definire il percorso? –

Problemi correlati