【问题标题】:Authentication model for Android applicationAndroid 应用的认证模型
【发布时间】:2011-09-09 08:01:24
【问题描述】:

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

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

有没有人有关于用户身份验证的经验。有人知道如何实现吗?

【问题讨论】:

    标签: php iphone android design-patterns cakephp


    【解决方案1】:

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

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

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

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

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

      这就是我工作场所的服务器端人员的做法。我在客户端工作。但这基本上是完成的。

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

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

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

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

    有很多函数可以生成随机令牌。

    【讨论】:

    • 感谢您的帮助 :) 对于用户身份验证模型,您还有其他选择吗?我想知道所有选项:)
    • 这是我们通常做的。好吧,也许其他人会用其他选择来回答。身份验证系统根据需求不断发展
    • 你能帮我理解一下标记是如何工作的吗?每次用户登录时我需要在服务器端生成一个令牌吗?
    • 是令牌在服务器端生成并返回给客户端。我已经用更多解释更新了我的答案。
    • 使用这种发送用户名密码组合到服务器的方法是否安全(大概使用@ 987654321@ 和 POST 操作)?
    猜你喜欢
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2014-01-09
    相关资源
    最近更新 更多