[英]How to consume REST API key in my android app?
我正在開發一個使用公共REST API的Android應用程序,其中提供了開發人員密鑰。 如何在應用程序中實現密鑰? 是否將不同設備中的每個應用程序都嵌入了相同的開發人員密鑰? 如果是這樣,我只有有限的開發人員密鑰配額,應該如何管理? 或如何在不同設備上為每個應用程序使用不同的唯一API密鑰,以便每個應用程序都有自己的配額,我該如何管理它?
例如-場景1(問題1)-假設開發者配額= 1000次匹配,然后應用程序在5種不同的設備上運行,那么從API訪問和檢索信息會很快耗盡我的開發者配額。
方案2(問題2)-在不使用開發人員密鑰(quota)的情況下,此處每個設備上的每個應用程序都有各自的配額= 1000次匹配。 就像每個設備都有自己的帳戶一樣。
我是REST API的新手,並考慮了以上場景,但是我不知道如何實現和管理它們,或者在我的應用程序中實現REST API密鑰的實際正確解決方案是什么?
我已經使用開發人員密鑰在設備上成功測試了我的應用程序。
您可以在API標頭或參數中實現API密鑰。 例如,如果您正在使用Retrofit,則標頭中的實現密鑰將如下所示:
@Headers({"key: your_key"})
@POST("user/classes")
Call<playlist> addToUserlist(@Body UserParam parm);
或者,如果您想在參數中實現它,它將看起來像這樣:
@POST("user/{key}/classes")
Call<playlist> addToUserlist(@Path("key") String your_key);
對於配額管理,它是后端邏輯,它處理用戶請求,因此您應該遵循方案1中的后端方法。這就是它的工作方式。
access token
作為響應。 將令牌存儲在設備安全的地方(即android中的SharedPreferences
)。 將每個請求的“ Authorization
標頭中的令牌發送到服務器,您的服務器應受到“ Authorization
保護。 服務器更新當天消耗的配額。 服務器可以通過以下方式管理配額,
on根據Authorization
標頭中的令牌識別用戶並更新配額。 ‣如果配額超出限制,請向設備返回一些有意義的錯誤。
對於方案2,使令牌成為“ User Independent
(同一帳戶允許多個設備登錄)。 通過使令牌與User Independent
並高於給定的流程,您可以實現問題中給定的方面。 讓我知道你是否有問題。
我建議使用JWT Token
。 因為它是標准的JSON網絡令牌,並且已在全球范圍內使用。 它在主要平台上具有多種優勢和可用性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.