9
這主要是缺乏對oauth2的理解,可能不是特定於電子,但我試圖圍繞如何處理一個oauth2重定向url桌面平臺,像電子?處理oauth2重定向從電子(或其他桌面平臺)
假設沒有web服務設置作爲應用程序的一部分,桌面應用程序如何提示用戶輸入第三方oauth2服務的憑據,然後正確驗證它們?
這主要是缺乏對oauth2的理解,可能不是特定於電子,但我試圖圍繞如何處理一個oauth2重定向url桌面平臺,像電子?處理oauth2重定向從電子(或其他桌面平臺)
假設沒有web服務設置作爲應用程序的一部分,桌面應用程序如何提示用戶輸入第三方oauth2服務的憑據,然後正確驗證它們?
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/
我使用電子對Spotify的認證。爲此,我需要在'authUrl'中傳遞重定向URI。當不使用類似Node.js的「express」模塊來定義路徑時,如何使用類似「https:// localhost/callback」的東西? –