我們的API返回會話失效(30分鐘不活動)的用戶授權碼。因此,如果我們使用身份驗證令牌進行api呼叫,它會將會話從通話時間更新爲30分鐘。如何處理app中的API令牌失效
經過30分鐘的非活動狀態後,api返回一個錯誤,表明令牌已過期。此時我們應該請求一個新的身份驗證令牌。
但是,這樣做的顯而易見的方式(向用戶顯示登錄屏幕並讓他們再次登錄)將意味着在應用程序中的某些功能中斷用戶。例如,我們有各種視圖控制器,其中包含選項和輸入,它們在流程結束時聚合並提交一個完整的API調用。如果會話在服務器上到期,而用戶正在填寫這些輸入和視圖,則在進行API調用時它們將被註銷,並且它們將在這些視圖中失去進展。
這有兩個可能的變通:
我們在我們自己的應用程序,以確保後的應用30分鐘不活動的用戶註銷設置定時器。這意味着它們在一組輸入過程中不會被註銷,但是這帶來了以下問題:即使我們正在運行自己的計時器,服務器API仍可能會過期。因此這不起作用。
我們每隔10秒左右輪詢服務器以詢問API授權令牌是否仍然有效。這會消耗電池,數據和各種各樣,只是不是一個合理的方式來做這樣的事情。
有沒有人有任何想法?
感謝 湯姆
從API發送「您已註銷」消息有什麼意義?爲什麼不在密鑰過期後嘗試撥打新電話時將用戶登錄?非常像cookies在瀏覽器 – ale0xB
中的工作原理是這樣的...問題是因爲他們可能在註銷之前完成加載。即使他們正在使用該應用,身份驗證令牌也可能會過期。 –