2017-10-07 64 views
0

我正在創建使用Spotify的oauth api的桌面應用程序。我正在使用這裏描述的隱式授權流程:https://developer.spotify.com/web-api/authorization-guide/#implicit_grant_flow本地主機上的HTTPS用於桌面應用程序的OAuth

我的想法是有一個「驗證」按鈕,單擊它並打開瀏覽器。您登錄/批准與Spotify的連接。然後它會將您發送到重定向網址。

我想將此重定向url設置爲127.0.0.1:58212或環回設備上的某個端口。

我的問題是,我應該使用https嗎?

我傾向於是。一種是因爲訪問令牌需要安全,並且我相信系統中的其他用戶在發送郵件時可能會讀取該郵件,另外兩個用戶則因爲用戶登錄所用的時間,可能會有人接管端口。

所以我想SSL加密的消息,我想確保我實際上在跟我的應用程序交談。

如何在這種情況下生成證書?我認爲應用程序的每個實例都需要擁有自己的證書,並且我需要以某種方式通知計算機在應用程序的生命週期中信任該證書。

我也可以在安裝過程中生成證書,並在安裝過程中執行一些操作,使系統信任該證書。

我在想這是否正確的方法,還是我在談論這一切都是錯誤的?

我正在使用電子並用JavaScript表達我的應用程序。

感謝您的任何建議。

回答

0

安裝Oauth與安裝的應用程序(如桌面應用程序)的最佳方式是爲已安裝的應用程序使用Oauth 2流程。但是這個選項必須由服務提供商來實施。 Google提供了這個選項。

https://developers.google.com/api-client-library/python/auth/installed-app

不幸的是,很多服務沒有實現的OAuth2。

要將Oauth 1.0與已安裝的應用程序一起使用,而不是返回到callback_url,服務提供程序會向用戶顯示授權碼,然後用戶可以將該授權碼複製並粘貼到桌面應用程序。檢查出Trello Ouath整合,允許這一點。

您試圖實現的Web Api流程在桌面應用程序中不起作用。重定向uri 127.0.0.1:port是你當地的uri。服務提供商至少需要您的公共IP將流量重定向回您的系統。

0

AFAIK,對於桌面或本地應用程序,實現Oauth授權代碼流要好得多。隱式授權旨在用於設備瀏覽器而不是Web視圖。

如果您的應用程序使用Web Service進行連接,那麼您的Web Service需要使用https的重定向URL。幸運的是,大多數託管平臺,如Heroku免費提供給你(否則你需要購買一份SSL證書,這可能是很多工作)。

在授權碼流上,令牌不需要看到客戶端,它都存儲在後端。

大多數服務允許您使用http測試localhost。 我寫了一個tutorial,可以給你一些關於流程的指導。

相關問題