【问题标题】:User authentication for android app安卓应用的用户认证
【发布时间】:2012-07-26 23:59:01
【问题描述】:

请提前原谅我,但我已经阅读了与此相关的所有主题,这个新手仍然很困惑。让我开始简要介绍一下我正在努力实现的目标...... 我创建了一个测验。由于我要添加排行榜,因此我要求用户创建用户名和密码或电子邮件地址,以便唯一。我已经成功地使用 phpmysql 创建了注册和登录功能,这一切都在我的应用程序中运行良好。 但是,我不希望用户每次打开应用程序时都必须登录,而是记住用户详细信息。 我是否使用android sdk中的帐户管理器功能并废弃mysql?还是我应该只修改我已经拥有的?我什至需要使用 phpmysql 登录吗?我意识到我将不得不将它用于排行榜。 任何能帮助我指出正确方向的帮助将不胜感激。

干杯

【问题讨论】:

    标签: php android mysql


    【解决方案1】:

    我们是一个会话系统,类似于您使用 cookie 的方式。

    android设备连接时,在PHP中:

    • 创建一个简单的“会话”变量。
    • 根据数据库中的会话变量记录电话签名
    • 将会话变量返回给 android。

    在安卓中:

    • 将会话变量存储在手机的本地数据文件中。

    后续调用:

    • Android 将会话变量(从本地文件存储)连同手机 ID 发送到 PHP
    • PHP 检查会话变量是否有效,检查电话签名是否匹配。如果他们这样做,你有相同的会话。如果它们不匹配,请创建一个新会话(并发送回手机)。

    当用户“登录”时

    • 在 PHP 中存储 user_id 和他们已经登录到会话变量的事实。
    • 然后,当会话变量从手机发送时,您无需交互即可知道 user_id。
    • 如果用户注销,只需将其记录在数据库中(从会话中取消 user_id 的链接)

    由于文件存储是持久的,即使应用程序关闭,手机 ID 也不会改变,PHP 将始终知道连接中的用户是谁,即使在应用程序关闭后也是如此。

    【讨论】:

    • 感谢您的帮助。这总结了我需要做的事情......但是怎么做呢?对不起,但我对此完全陌生。我已经研究了教程以达到我所掌握的程度,所以如果您知道任何可以执行您的建议的人,我将不胜感激。
    • 我无法具体回答。我编写的 Android 应用程序是在 Titanium/Appcellerator 中,而不是在 Java 中,所以我不能给你一个 sn-p 的代码。您可以在整个 Web 上找到 PHP 的会话示例 - 但反对“设置 cookie”并使用 $_COOKIE,将值(回显,可能为 JSON)返回到 Android 应用程序并从参数中获取会话 ID。跨度>
    • 谢谢。我可以查一下php。但是如何记录电话签名呢?我不确定那是什么意思。
    【解决方案2】:

    尽管 Robbies 的回答很好,但至少在短期内,这听起来对您的应用程序来说有点矫枉过正。一个更简单的解决方案是在每个会话中使用 Shared Preferences 保存一个布尔值:

    http://developer.android.com/guide/topics/data/data-storage.html#pref

    Shared Preferences 存储会话之间的变量并且易于获取。在您的情况下,如果登录成功,您将保存一个布尔值 true。下次启动应用程序时,获取布尔值,如果为真,则不需要登录。如果没有这个变量或者设置为false(之前登录失败/用户注销),请求登录!

    祝你好运

    【讨论】:

    • 谢谢你们。 Hasslarn 我会去阅读一些关于共享偏好的教程!
    • 我链接的那个几乎占据了要领:)
    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 2013-01-09
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 2016-11-22
    • 2016-02-17
    • 2011-05-11
    相关资源
    最近更新 更多