2017-04-07 102 views
0

我們有Android應用程序,通過它,零售商可以爲客戶移動充值。所以我們需要授權每個充值請求。如何管理android應用程序和ASP.net Web API之間的狀態?

要發送充值請求零售商需要充值相關的信息和用戶ID和用戶密鑰。正如下面

[AcceptVerbs("GET")] 
    public IHttpActionResult Prepaid(int pUserID = -1, string pKey = "", string pCustomerNo = "", decimal pAmount = 1, int pServiceProviderId = -1, int pDeviceTypeId = -1) 

我們爲每個API認證用戶打比較用戶鑰(encrypeted密碼),密碼存儲在數據庫

這使得太多的數據庫調用和我們的服務器得到緩慢

它的B2B應用和零售商執行不同類型的操作,如交易記錄,信用申請,除了充值以外的書籍投訴

如何在用戶登錄Android應用程序後維護狀態

回答

0

那麼,REST設計是無狀態的。通過添加會話(或其他類型的任何其他類型),您將使其成爲有狀態的,並打敗擁有RESTful API的任何目的。

實現身份認證和我用以下方法驗證:

雖然在Android,用戶用戶POST請求發送他的用戶名和密碼的HTTP認證頭,並在服務器端,我們檢查密碼,如果用戶被授權了我們處理用戶請求。

無需維護android和web api之間的任何狀態,因爲api是無狀態的。

0

如果用戶密鑰是每個用戶或每個唯一移動號碼的唯一標識,那麼我認爲您最好驗證用戶正在使用的移動號碼來通過發送OTP進行充值。用戶然後可以將該OTP發回以進行認證。 但是,只有在登錄時才執行此操作,然後將您生成的唯一用戶密鑰存儲在Shared preference存儲中。

+0

它的b2b應用程序不是b2c。和零售商執行不同的行爲,如交易歷史記錄,信用申請,除了充值以外的書籍投訴 – Luqman

+0

您無需每次對用戶進行身份驗證以進行充值或其他任何操作。只需在登錄時對用戶進行身份驗證,並將您的「user_key」存儲在共享首選項中以供進一步使用。 –

相關問題