如何管理 android app 和 ASP.net Web API 之间的状态?

How to manage state between android app and ASP.net Web API?

我们有 android 应用程序,零售商可以通过该应用程序为客户的手机充值。所以我们需要对每个充值请求进行授权。

要发送充值请求,零售商需要使用充值相关信息以及用户 ID 和用户密钥点击 api。如下

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

我们对每个 api 命中的用户进行身份验证,将用户密钥(加密密码)与存储在 db

中的密码进行比较

这会使数据库调用过多,我们的服务器变慢

它的 b2b 应用程序和零售商执行不同类型的操作,例如交易历史记录、信用请求、图书投诉,而不仅仅是充值

如何在用户登录 Android 应用程序后保持状态

如果用户密钥是每个用户或每个唯一手机号码的唯一标识,那么我认为您最好通过发送一次性密码。然后用户可以发回该 OTP 以进行身份​​验证。 但仅在登录时执行此操作,然后将您生成的唯一用户密钥存储在 Shared preference 存储中。

好吧,REST 的设计是无状态的。通过添加 session (或任何其他类似的东西),您可以使它有状态并破坏任何 RESTful API.

的目的

为了实现身份验证和授权,我使用了以下方法:

当用户 post 从 android 请求时,用户在 http 身份验证 header 中发送他的用户名和密码,在服务器端我们检查密码,如果用户被授权我们处理用户要求。

无需维护 android 和网络 api 之间的任何状态,因为 api 是无状态的。