2017-09-03 42 views
5

我的CI應用程序將API調用給第三方Rest API服務器,該服務器將被前端使用。起初,前端應用程序會打我的CI應用程序,而這反過來會擊中第三方LogInAPI(會話有效15分鐘),並且在登錄後,我們需要通過將密鑰(響應loginApi)傳入標題。所以基本上我需要每15分鐘點擊loginAPI。我試圖在我的Codeigniter應用程序的角度許諾有點不知道如何實現它?爲防止前端收到空的或會話過期的響應,最好的方法是什麼?CodeIgniter 3實現承諾

回答

1

您不需要保持刷新該登錄。當您從第三方API接收登錄信息時創建時間戳。然後將其傳遞到每個請求的後端。

在前端檢查時間戳的每個調用的後端,如果已過期,請不要對API進行正常調用,而是先獲取新的登錄名,然後再請求調用。

作爲對每個前端調用的響應,還返回登錄信息,以便前端在更新後獲取新憑據。

如果憑據是應用程序範圍廣泛的,那麼前端根本不需要知道它們。只需將憑證存儲在某種存儲(SQL DB,鍵值存儲等)中,並在適當時進行自動續訂。

+1

好主意,也可以不用爲每個請求傳遞時間戳,你可以創建一個cookie條目,在15分鐘之後刪除,所以在請求api之前,你可以檢查cookie是否存在,如果不是按照答案登錄登錄 – dEL

+0

有什麼辦法在PHP CI中實現這一點,而不是從前端調用登錄API –

+0

@PsycheGenie是的,看看我的最後一段。無論代碼調用外部API都可以檢查時間戳,並決定首先重新獲取新憑據,然後才調用main api。 –