【问题标题】:How to implement cookie in android application如何在android应用程序中实现cookie
【发布时间】:2012-10-17 15:02:35
【问题描述】:

我想在 Android 中制作一个登录应用程序。

项目的要求是使用cookie将用户名和密码存储两天。

可以使用cookies吗?如果是,那么如何?可以给我代码吗?

注意:我不能使用网络视图。

【问题讨论】:

  • 您永远不应该将密码存储在 cookie 中。
  • 在你的问题中,它的服务器cookie是问题,而不是android。

标签: android cookies


【解决方案1】:

正如评论者已经说过的,您不应该将密码(即使是加密形式)存储在 cookie 中。您可以存储的是会话 ID。当用户登录应用程序时,应用程序会为他/她生成一个会话 ID,该会话 ID 将保持两天有效。在您向应用程序发出的每个请求中,都将会话 ID 添加为 HTTP 标头。

您可以将会话 ID 和发出它的日期时间存储在首选项中。当用户需要向应用发出新的请求并且会话尚未过期时,您可以读取存储的值。

【讨论】:

  • 嗨,我想在我的项目中实现这个。但我很困惑如何做到这一点?你能给我发一些代码来实现这个功能吗?
【解决方案2】:

如果您不希望将其集成到浏览器中,请尝试一下。

如果查看 HTTP 协议,您可以看到 cookie 是由客户端在请求中以纯文本形式发送的。这意味着您应该让您的应用程序在您每次请求页面时交付它们。这对仅限本地的 cookie 无效,但我认为您对这些不感兴趣。如果您想从服务器端设置 cookie,则必须调整您的应用程序以解析响应并查找 cookie。 (也是 HTTP 协议)

为了更好地查看您需要发送或接收的原始数据,您可以使用 Wireshark 或类似工具监控您的流量,并查看请求/响应的样子。

我目前正在开发一个需要在 iPhone 上实现的网络服务,这是我的第一个想法。我还没有实现这个(我的网络服务还没有完成),所以目前我不能告诉你更多。

Edit: 一个有用的页面可能是位于此处的 Wikipedia HTTP Cookie 页面。

【讨论】:

  • 我知道这篇文章已经很久了,但我以前从未听说过local-only cookies,你能提供更多信息吗?也许我正在寻找类似的东西
【解决方案3】:

正如 Reno 所说,尽量避免将密码存储在 cookie 中。相反,您应该让服务器在登录时生成一个 sessionID,并让这个 ID 在两天后在服务器上过期。因此,您可以使用登录一次生成的用户名和 sessionID 登录。

如果你想要,你可以将 sessionID 存储在 cookie 中。

【讨论】:

    猜你喜欢
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多