2013-10-02 39 views
0

我有一個用OAuth2和移動應用程序保護的REST後端。OAuth2資源所有者憑據流:如何確保給定的client_id是官方應用程序的一個?

我想用資源所有者憑證流從我的移動應用程序的用戶進行身份驗證。

因爲我必須提供一個CLIENT_ID,以確定其請求身份驗證的應用程序,我怎麼能阻止黑客從我的移動應用程序的源代碼偷我的CLIENT_ID,我怎麼能取消呢?

我真的想知道Twitter官方Android應用程序,例如如何處理這種事情。

回答

0

我知道這是一個非常古老的職位,但我只是碰到它在一個不相關的搜索,發現它是沒有答案。

要從OAuth 2.0 spec引述

的客戶端標識符不是祕密;它暴露給資源所有者,不能單獨用於客戶端認證。

換句話說,client_id與用戶名或電子郵件非常相似。如果有人發現我的電子郵件地址,我當然不會介意,即使這是登錄和查看我的電子郵件所需的數據的一半。爲了保持該理念,client_secret是,應通過守着你的源代碼和發送POST請求只HTTPS端點保持私人密碼。

至於通過這些證書撤銷授予客戶權限,大部分(如果不是全部)主要的OAuth提供商將允許你通過他們的OAuth的門戶網站做一些事情。要按照您的Twitter示例,他們在API密鑰頁面上有一個按鈕,以「重新生成API密鑰」。如果您是服務提供商(我之所以這麼說是因爲您提到了對資源所有者憑據的權限),並且您沒有設置面向公衆的OAuth門戶,這只是在任何數據存儲中更改字符串的問題您使用服務器端,然後在您的客戶端源代碼中進行相同的更改。

+0

如果有不需要登錄的restapi請求。例如產品清單..我可以使用哪種流程? .. thanx求助 – Saltuk

相關問題