2016-05-31 23 views
9

Bu, çoğunlukla oauth2'nin anlaşılmaması ve muhtemelen elektronla ilgili olmayan bir şeydir, ancak kafamın birisinin bir oauth2 yönlendirme URL'sini nasıl işleyeceğine dair sarmak istiyorum. masaüstü platformu, elektron gibi?oauth2 yönlendirme elektrondan (veya diğer masaüstü platformlarından) yararlanılıyor

Uygulamanın bir parçası olarak hiçbir web hizmeti kurulumu olmadığı varsayıldığında, bir masaüstü uygulaması bir kullanıcıyı bir üçüncü taraf oauth2 hizmetine karşı kimlik bilgilerini ister ve sonra doğru bir şekilde doğrulamasını nasıl yapar?

cevap

7

Electron JS, yerel sunucunuza bir tarayıcı örneği çalıştırır. Bu nedenle, https: localhost/whatever/path/you/want adlı bir geri çağırma URL'si sağlayarak bir oauth2 yönlendirme URL'si işleyebilirsiniz. Kullandığınız hizmet için oauth2 uygulama kayıt sayfasında beyaz listeye yazdığınızdan emin olun.

Örnek: Bu sayfadaki alınan ilham

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; 
}); 

Bir çok: Ben Spotify Kimlik Doğrulaması için Electron kullanıyorum http://manos.im/blog/electron-oauth-with-github/

+1

. Bunu yapmak için Yönlendirme URI'sını "authUrl" içinde geçirmem gerekiyor. Yolu tanımlamak için Node.js'in "express" modülü gibi bir şey kullanmadığında 'https: // localhost/callback' gibi bir şeyi nasıl kullanabilirim? –