我有一個包含Web應用程序,移動應用程序(Ionic 3)和REST API模塊(在HTTPS上)的項目。 我主要關心的是在它們之間實現安全的登錄和通信。 波紋管我詳細說明了我選擇的解決方案,我想問問它是否正確和安全。如何保護Ionic 3應用程序和自定義php REST API之間的通信
遵循的步驟:
-
在應用中的登錄
服務器返回一個智威湯遜 - 艾策斯令牌
當我打電話從API(除了登錄)我會發送以下參數的任何功能:
- 內部報頭:JWT AccesToken(存儲在本地存儲)
- 體內:任何其他PARAM necess ary來調用API的函數
裏面的每個函數都來自REST API,在執行之前,我檢查Access令牌是否有效。
令牌驗證:
一)如果訪問令牌是有效的我繼續執行功能,並返回一個值到了移動應用
B)如果訪問令牌不是有效的手段我有2個可能的錯誤來源:
- B1)的訪問令牌的完整性是一個妥協 - >返回的答案將用戶重定向到登錄(這樣一來他沒有再對應用程序的訪問)
- b2)訪問令牌過期 - >我創建一個新的訪問令牌具有相同的有效負載,但具有新的有效性。同時,我創建新的Access令牌,同時我還檢查了數據庫中的IdClient(IdClient是從訪問令牌載荷生成的)(如果處於活動狀態,如果具有訪問API的相同權限...)。在此之後,我將這個新的JWT訪問令牌發送到移動應用程序以供使用和存儲。
這樣,我相信我沒有使用刷新標記,即使訪問令牌我用壽命是有限的時期
這是正確的和安全的還是我失去了一些東西?
謝謝!
我選擇不使用RefreshToken因爲我不」知道如何reciving的艾策斯令牌到期錯誤 後召回功能刷新令牌我應該做的: A)調用SUM1:發送內部FUNCTION1變量和艾策斯令牌 B) :我收到訪問令牌過期的錯誤 C)FUNCTION1內部:我發送刷新令牌 D)在FUNCTION1內部:我收回新的訪問令牌 E)在FUNCTION1內部:我從新的訪問的REST API中調用函數SUM1令牌 所有這些步驟必須在FUNCTION1內完成。但我不知道如何。 也許在angular2上使用RJx,「重試/重試時......」但我只能讀到它們 – Eventful