根據facebook oauth2文檔,客戶端流程不需要客戶端祕密參數。客戶端流程可用於本地和移動Web應用程序。爲什麼Google本地oauth2流程需要客戶端密鑰?
但谷歌的原生oauth2流程需要客戶端祕密http://code.google.com/apis/accounts/docs/OAuth2.html#IA。
在這種情況下,客戶端機密可以被黑客利用逆向工程工具盜取。
有人可以澄清爲什麼這樣做嗎?
根據facebook oauth2文檔,客戶端流程不需要客戶端祕密參數。客戶端流程可用於本地和移動Web應用程序。爲什麼Google本地oauth2流程需要客戶端密鑰?
但谷歌的原生oauth2流程需要客戶端祕密http://code.google.com/apis/accounts/docs/OAuth2.html#IA。
在這種情況下,客戶端機密可以被黑客利用逆向工程工具盜取。
有人可以澄清爲什麼這樣做嗎?
根據Google員工的帖子,主要原因是他們使用相同的庫用於服務器端應用程序和本機應用程序。這聽起來像他們不認爲client_secret在本地應用程序的上下文中很敏感,但他們計劃最終逐步淘汰已安裝的應用程序流。
從https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8:
我們不希望這些祕密留祕密到目前爲止我們包括他們大多所以它的方便與今天的庫使用,並希望停止要求他們在某個時刻在將來。
雖然這可能聽起來很糟糕,但請記住,OAuth從未打算防止惡意用戶在移動/桌面應用上下文中僞造請求。
如果你關心公開client_secret,還有這裏描述的客戶端流程:http://code.google.com/apis/accounts/docs/OAuth2.html#CS據我所知,客戶端流程不需要client_secret,並且可以從桌面或移動應用。
-Chris