java - Android - 如何使用登录名和密码正确查询在线数据库?

标签 java php android database

对于我的 Android 应用程序,我通常通过将 GET 或 POST 参数发送到各种 PHP 脚本 URL 来查询数据库,这些 URL 又会吐出我在我的应用程序中解析的 xml 或 json。

但是,如果我有一个数据库,其中包含用户通常使用登录名/密码访问的个人 protected 信息,那么从应用程序查询此信息的最佳方法是什么?我的上述方法可行,但我可能需要将用户的登录名/密码作为 GET 或 POST 参数发送...但这似乎是个坏主意...

通常在网络应用程序中,用户登录,然后从那时起使用 PHP session 。不过不确定如何使用 Android 应用程序处理此类问题。

最佳答案

我不认为身份验证对于连接到 Web 服务的 Android 应用程序是独立的。

您将复制您在 Android 上的 Web 服务中使用的相同身份验证机制。也就是说,如果您在 Web 服务中使用 http 身份验证(传输明文密码),您将在 android 上复制 http 身份验证。如果您不想通过线路传递明文凭证,您首先必须首先在您的 Web 服务中实现更安全的 (https)。

对于我的项目,我使用 POST 请求将明文凭据传递给服务器。浏览器还传输明文密码。身份验证后,该服务会发回一个 token (通常情况下是数据库用户 ID),该 token 必须包含在所有需要用户登录的 future 请求中。

当将登录 ID 和密码存储到首选项中时,我首先使用 sha1 对其进行哈希处理。这确实意味着下一次,我的 Web 服务将通过散列凭据并且必须知道如何处理它。

这个机制很简单,足以满足我的需要。对于这个项目,我真的负担不起像 https 这样的东西。

关于java - Android - 如何使用登录名和密码正确查询在线数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8691474/

相关文章:

java - 从 SQLite 获取数据到 Recyclerview 它导致我为 null

linux - 使用 PHP 启动脚本时,脚本中的执行 screen 失败

android - APK 大小对于只有按钮和微调器的 apk 来说很大

android - HideBottomViewOnScrollBehavior 不适用于回收器 View 项目展开/折叠

java - 如何在 QtJambi 中获取标准输入、标准输出、标准错误文本流的 QIODevice 实例?

java - Jersey 中的 StreamingOutput 是否已缓冲?

php - 尝试在 PHP 中回显某个 ID 时出现 SQLi 错误

java - Maven Android 项目不适用于 Java 8

java - soap ui 生成的代码

php - 事件记录 +1 值