Android应用程序的身份验证模型

时间:2011-09-09 08:01:25

标签: php iphone android design-patterns cakephp

我要构建一个有2部分的系统: 1. PHP网站(CakePHP)。 2.移动应用程序(Android和iPhone)。

用户必须使用usr& pwd登录才能使用我的系统(网络和移动应用程序)。但我没有很多用户身份验证的经验。我应该存储什么:usr& pwd,令牌字符串。我想为我的系统(Web和移动应用程序)找到“用户身份验证模型”。

是否有人有过用户身份验证的经验。有谁知道如何实现这个?

1 个答案:

答案 0 :(得分:13)

这就是我们为我们的应用程序所做的事情,

  1. 首先,我们从我们的应用程序向服务器发送用户名和密码。

  2. 在服务器上,他们验证凭据并返回一个响应,该响应是请求令牌和成功标志的组合。

  3. 在我们的应用程序中,我们检查成功标志。如果设置为true,我们保存请求令牌并将其用于服务器的所有下一个传出请求。

  4. 现在,当服务器收到请求时,它会检查数据库以查看用户是否具有此令牌。 如果是,则检查最后一次请求的时间。(这是为了处理用户登录超时的情况。)。如果当前时间与上次请求时间之间的差异大于您设置的限制,则您应答应用程序需要新的登录请求来生成新令牌。否则,您将继续请求并回复结果。

    这就是我工作场所的服务器端人员如何做到这一点。我在客户端工作。但这基本上就是做了什么。

  5. 编辑:关于令牌。 它基本上是一个32字符的字符串,它是用随机生成器方法生成的。因此,当用户发送登录请求并且登录成功时,我们使用生成器方法创建令牌,并将其作为用户请求令牌以及当前时间和日期存储到我们的服务器数据库中。

    因此,当用户向服务器发送另一个请求时,我们首先获取令牌并检查用户是否存在该令牌。如果有,那么下一步检查是否是一个旧的请求令牌。所以我们用保存在数据库中的时间来检查当前时间。如果请求是在限制之前发送的(例如5分钟),那么我们用当前时间更新数据库中的最后一个请求时间,并将结果返回给客户端。

    使用此方法,您可以通过检查令牌和上次请求时间来对每个请求进行身份验证。

    假设您希望应用程序一直登录,直到用户明确注销。在这种情况下,您无需检查每个请求时间。您需要做的就是将请求令牌保存在客户端设备上。当用户注销时,从客户端删除令牌。所以他将被要求在下一次登录,因为他没有令牌。在此方案中保存用户名和密码比在客户端设备上保存请求令牌更安全一些。

    有许多功能用于生成随机令牌。