本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何 AWS WAF 移動SDK作品
本節說明如何 AWS WAF 行動SDK類別、屬性和作業可協同運作。
移動設備為您SDKs提供可配置的令牌提供程序,您可以用於令牌檢索和使用。權杖提供者會驗證您允許的要求來自合法客戶。當您將請求發送到 AWS 使用您保護的資源 AWS WAF,您可以在 Cookie 中包含令牌以驗證請求。您可以手動處理令牌 cookie,也可以讓令牌提供者為您執行此操作。
本節介紹了所包含在移動的類,屬性和方法之間的相互作用SDK。如需SDK規格的資訊,請參閱AWS WAF 移動SDK規格。
令牌檢索和緩存
在移動應用程序中創建令牌提供程序實例時,您可以配置希望它如何管理令牌和令牌檢索。您的主要選擇是如何維護有效的,未過期的令牌以在應用程序的 Web 請求中使用:
-
[啟用背景重新整理] — 這是預設值。令牌提供程序會在後台自動刷新令牌並對其進行緩存。啟用背景重新整理後,當您呼叫時
getToken()
,作業會擷取快取的權杖。令牌提供程序以可配置的間隔執行令牌刷新,以便在應用程序處於活動狀態時始終在緩存中可用未過期的令牌。當您的應用程式處於非作用中狀態時,背景重新整理會暫停。如需相關資訊,請參閱在應用程序不活動後檢索令牌。
-
背景重新整理停用 — 您可以停用背景權杖重新整理,然後僅在需要時擷取權杖。按需檢索的令牌不會被緩存,如果需要,您可以檢索多個令牌。每個令牌都獨立於您檢索的任何其他令牌,並且每個令牌都有自己的時間戳記用於計算到期時間。
停用背景重新整理時,您可以選擇以下權杖擷取:
-
getToken()
— 當您在禁用後台刷新getToken()
的情況下進行調用時,呼叫會同步從中檢索新令牌 AWS WAF。 這是一個可能的阻塞調用,如果您在主線程上調用它,可能會影響應用程序響應。 -
onTokenReady(WAFTokenResultCallback)
— 此呼叫以非同步方式擷取新的權杖,然後在 Token 就緒時,在背景執行緒中叫用提供的結果回呼。
-
令牌提供者如何重試失敗的令牌檢索
當擷取失敗時,權杖提供者會自動重試權杖擷取。重試一開始是使用指數輪詢來執行,開始重試等待時間為 100 ms。如需有關指數重試的資訊,請參閱中的錯誤重試和指數輪詢 AWS.
當重試次數達到設定後maxRetryCount
,權杖提供者會停止嘗試或切換至每maxErrorTokenRefreshDelayMsec
毫秒嘗試一次,視記號擷取的類型而定:
-
onTokenReady()
— 權杖提供者在嘗試之間切換到等待maxErrorTokenRefreshDelayMsec
毫秒數,並繼續嘗試擷取權杖。 -
背景重新整理 — 權杖提供者會在嘗試之間切換到等待
maxErrorTokenRefreshDelayMsec
毫秒數,並繼續嘗試擷取權杖。 -
禁用後台刷新時的按需
getToken()
調用 — 令牌提供者停止嘗試檢索令牌並返回先前的令牌值,如果沒有先前的令牌,則返回 null 值。
在應用程序不活動後檢索令牌
背景重新整理只會在您的應用程式類型視為作用中時執行:
-
iOS — 當應用程式位於前景時,會執行背景重新整理。
-
Android — 背景重新整理會在應用程式未關閉時執行,無論是在前景還是背景。
如果您的應用程序處於不支持後台刷新的任何狀態超過配置的tokenRefreshDelaySec
秒數,則令牌提供程序將暫停後台刷新。例如,對於 iOS 應用程序,如果tokenRefreshDelaySec
是 300 並且應用程序關閉或進入後台超過 300 秒,則令牌提供程序將停止刷新令牌。當應用程序返回到活動狀態時,令牌提供程序會自動重新啟動後台刷新。
當您的應用返回到活動狀態時,請調用以onTokenReady()
便在令牌提供程序檢索並緩存新令牌時收到通知。不要只是調用getToken()
,因為緩存可能還不包含當前的有效令牌。