2016-05-31 65 views
9

這主要是缺乏對oauth2的理解,可能不是特定於電子,但我試圖圍繞如何處理一個oauth2重定向url桌面平臺,像電子?處理oauth2重定向從電子(或其他桌面平臺)

假設沒有web服務設置作爲應用程序的一部分,桌面應用程序如何提示用戶輸入第三方oauth2服務的憑據,然後正確驗證它們?

回答

7

Electron JS在本地主機上運行瀏覽器實例。因此,您可以通過提供https:localhost/whatever/path/you/want的回調URL來處理oauth2重定向url。只要確保將它列在oauth2應用程序註冊頁面上,就可以使用任何服務。

例子:

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

很多在此頁面所採取的靈感:http://manos.im/blog/electron-oauth-with-github/

+1

我使用電子對Spotify的認證。爲此,我需要在'authUrl'中傳遞重定向URI。當不使用類似Node.js的「express」模塊來定義路徑時,如何使用類似「https:// localhost/callback」的東西? –