2015-10-05 56 views
0

我寫了一個android應用程序來獲取我的帳戶使用情況,如語音數據使用情況,來自Ringplus站點(ringplus.net)的SMS數據使用情況。如何分發oauth2客戶端應用程序?

Ringplus API(https://docs.ringplus.net/)使用Oauth2。我寫的應用程序已經爲我的帳戶設置了硬編碼的客戶端密碼&。

現在,一切工作正常我的帳戶。但我想把這個應用程序給我的朋友,這樣他也可以使用它來查看他的帳戶使用情況。

與客戶端ID &祕密硬編碼,這將如何爲我的朋友工作?

此外,當我在Ringplus網站上創建應用程序時,我只是添加了redirect_uri作爲不存在的東西,因爲我沒有託管任何內容,所以不存在http://localhost

所以,我的問題是如何分配我的應用程序與客戶端ID &祕密硬編碼?

感謝

回答

0

如果我沒看錯的客戶端ID和祕密是對API的訪問。該應用程序不能被替換,並且需要在應用程序中才能使用API​​成功進行身份驗證/授權。

如果你不喜歡分享你的客戶端ID和祕密,你可以在android應用程序中提供一個首選項屏幕,供用戶輸入該信息。但用戶需要註冊API(如你所做的那樣)。使用SharedPreferences中輸入的信息可以用來連接到API。

+0

只是爲了澄清,我不介意在代碼中硬編碼我的應用客戶端ID和祕密值。你是否用那些硬編碼的價值來說,即使我把這個應用程序交給朋友,它也可以用他的賬戶來獲得統計信息?我認爲它可能無法正常工作....請注意,我的Ringplus用戶名和密碼將與他不同。在我的帳戶中,我創建了一個應用程序,從中抓取客戶端和祕密並對其進行了嚴格編碼。我認爲當他第一次通過webview使用我的硬編碼客戶端和祕密進行身份驗證時,它不起作用。你能澄清一下嗎? –

+0

硬編碼解決方案並不理想,尤其是當您希望將應用程序投入生產時,但在開發和測試階段,它可能是一種選擇。除此之外,(根據API)「檢索授權碼」,當它被調用時,會將用戶帶到一個認證頁面,該頁面會詢問用戶的用戶名和密碼(或任何他們需要認證的信息),一旦驗證是基於回傳的參數完成的,它將被重定向回您的應用程序。 – Dilberted

+0

是的,一旦它的身份驗證,它會被重定向迴應用程序,但我的redirect uri只是虛擬的(https:// localhost),因爲我沒有任何東西。我寫這個程序只是爲了開發目的而不是生產。你是說在這種情況下它仍然可以工作嗎? –

0

您應該將客戶機密鑰存儲在服務器中。一旦通過發送clientid到ringplus接收到代碼,您將獲得代碼到您的服務器重定向uri。從這裏你可以發送客戶端密鑰到ringplus併發送身份驗證令牌給用戶