簡體   English   中英

如何在我的Android應用中使用REST API密鑰?

[英]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中的后端方法。這就是它的工作方式。

  1. 設備登錄。 成功后,服務器將返回access token作為響應。 將令牌存儲在設備安全的地方(即android中的SharedPreferences )。
  2. 將每個請求的“ Authorization標頭中的令牌發送到服務器,您的服務器應受到“ Authorization保護。 服務器更新當天消耗的配額。 服務器可以通過以下方式管理配額,

    on根據Authorization標頭中的令牌識別用戶並更新配額。 ‣如果配額超出限制,請向設備返回一些有意義的錯誤。

對於方案2,使令牌成為“ User Independent (同一帳戶允許多個設備登錄)。 通過使令牌與User Independent並高於給定的流程,您可以實現問題中給定的方面。 讓我知道你是否有問題。

我建議使用JWT Token 因為它是標准的JSON網絡令牌,並且已在全球范圍內使用。 它在主要平台上具有多種優勢和可用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM