【问题标题】:Application with session management in the server side在服务器端具有会话管理的应用程序
【发布时间】:2013-03-14 05:51:05
【问题描述】:

我需要使用带有身份验证“登录”机制的 iOS 客户端创建一个基于服务器的 (php) 应用程序,但我不知道 iOS 中的会话。我的应用程序需要登录到我的网站(基于 PHP 的网站)来获取数据。我不知道 iPhone 客户端的会话是否保留在服务器中?

详情:

从 iPhone 客户端向我的 Web 应用程序发送登录请求后,我认为这里在我的 Web 应用程序中创建了一个会话(对吗?),我的下一个请求呢?我可以访问为第一个请求创建的同一会话吗?换句话说:我可以在 Web 会话(在服务器中)共享数据,以便在登录后 iOS 客户端发送的每个请求中都可以访问吗?

【问题讨论】:

  • 基于 PHP 服务器的 iOS 应用,没有意义...
  • 是的,确实如此 - 不要迂腐。他显然是指一个 iOS 应用程序,它充当与 PHP 编写的后端服务器对话的客户端。
  • 亲爱的 Yahia,感谢您的建议,能否澄清您的评论
  • 亲爱的 Cariag1231,我的意思正是“尼克洛克伍德”提到的内容
  • 我知道了,非常感谢大家:)

标签: php ios session


【解决方案1】:

会话是服务器端的概念 - 客户端没有会话。

通常情况是服务器在您登录后在响应标头中设置一个 cookie,并且该 cookie 包含会话 ID,因此在后续请求中,服务器知道客户端正在使用该会话,因为它匹配饼干。

Cookie 会在 iOS 上自动运行,因此您根本无需执行任何操作。 NSURLRequests 有一个属性 HTTPShouldHandleCookies,默认为 YES,所以一切都应该在默认情况下正常工作。

如果它不起作用(或者如果您只是想看看发生了什么),您可以使用 NSHTTPCookieStorage API 访问 iOS 中的 cookie。看看 [NSHTTPCookieStorage sharedHTTPCookieStorage] 内部,它的工作方式有点像 NSDictionary。这就是你登录后应该设置会话cookie的地方。

【讨论】:

  • +1 以获得完全正确的答案。再补充一点,会话必须使用 cookie 保持 - 它也可以是一个 get 参数,具体取决于服务器/PHP 设置。
  • 是的,这是真的。我决定从答案中省略它以避免使事情复杂化,但这是一个有效的观点。
  • +1 这太棒了,这正是我需要阅读的内容,干杯!
猜你喜欢
  • 1970-01-01
  • 2012-07-03
  • 2011-03-27
  • 1970-01-01
  • 2014-03-16
  • 2021-01-24
  • 2010-09-15
  • 2010-10-06
  • 1970-01-01
相关资源
最近更新 更多