Android应用程序的用户身份验证

Android应用程序的用户身份验证

问题描述:

请原谅我,但我已阅读所有与此相关的主题,并且这位新手仍然感到困惑。让我开始给出我想要实现的目标的简短叙述... 我已经创建了一个测验。由于我添加排行榜,因此我需要用户创建用户名和密码或电子邮件地址,以便保持唯一性。我已经设法使用phpmysql创建注册和登录功能,并且它在我的应用程序中运行得非常好。 但是,我不希望用户在每次打开应用程序时都必须登录,而是记住用户的详细信息。 我是否在android sdk中使用帐户管理器功能并删除mysql?还是应该修改我已有的内容?我甚至需要使用phpmysql进行登录吗?我意识到我将不得不将它用于排行榜。 任何帮助指出我在正确的方向将不胜感激。Android应用程序的用户身份验证

干杯

我们的会话系统,类似于您如何使用cookie。

当Android设备连接,在PHP中:

  • 创建一个简单的 “会话” 变量。
  • 在数据库中记录针对会话变量的手机标记
  • 将会话变量返回给android。

在Android中:

  • 店在手机上的本地数据文件中的会话变量。

对于后续的呼叫:

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

当用户“登录的”

  • 商店,他们已经登录针对PHP的会话变量USER_ID和事实。
  • 然后,当从手机发送会话变量时,您知道没有交互的user_id。
  • 如果用户注销,只是记录在数据库(取消链接从会话中USER_ID)

为文件存储的是的persisent,即使在应用程序关闭,手机ID不会改变,即使在应用程序关闭后,PHP也会始终知道用户是谁连接的。

+0

感谢您的帮助。这总结了我需要做的事情......但怎么做呢?对不起,但我对此完全陌生。我已经学习了教程以尽可能地获得,所以如果你知道任何执行你的建议,我会很感激。 – user1556260 2012-07-27 01:27:08

+0

我无法专门回答。我写的Android应用程序已经在Titanium/Appcellerator中,而不是在Java中,所以我不能给你一小段代码。您可以在整个Web上找到适用于PHP的会话示例 - 但是,如果选择“设置cookie”并使用$ _COOKIE,则将值(echo,可能为JSON)返回给Android应用程序,并从参数中获取会话ID。 – Robbie 2012-07-27 01:55:45

+0

无论如何。我可以查看PHP。但是如何记录手机签名?我不确定那是什么意思。 – user1556260 2012-07-27 02:43:43

尽管Robbies的回答很好,但至少在短期内这听起来像是对你的应用程序的一种矫枉过正。一个简单的解决方案是保存一个布尔与共享偏好每个会话:

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

共享偏好店变量中间人会话和简单获取。在你的情况下,如果登录成功,你会保存一个布尔值true。下一次应用程序启动时,获取布尔值,如果为true,则不需要登录。如果没有这样的变量或者它被设置为false(以前登录失败/用户注销),请求登录!

祝你好运

+0

谢谢你们两位。哈斯拉尔我会去读一些关于共享偏好的教程! – user1556260 2012-07-27 03:24:05

+0

我连接的一个非常需要的要领:) – 2012-07-27 14:14:50