在服务器端使用会话管理的应用程序

在服务器端使用会话管理的应用程序

问题描述:

我需要创建一个基于服务器(PHP)的应用程序与iOS客户端与authintication“登录”mechanisim但我不知道在iOS会话。我的应用程序需要登录到我的网站(基于PHP的网站)才能获取数据。我不知道是iPhone客户端的会话是否保存在服务器中?在服务器端使用会话管理的应用程序

详情:

发送来自iPhone客户端的登录请求我的Web应用程序后,我觉得这里的会话是在我的web应用程序中创建(右?),那我的下一个请求?我可以访问为第一个请求创建的同一个会话吗?换句话说:我可以在Web会话(在服务器)*享数据,以便在iOS客户端登录后发送的每个请求中都可以访问数据吗?

+0

基于PHP服务器的iOS应用程序,没有意义... – craig1231 2012-02-05 11:22:54

+6

是的,它确实 - 不要迂腐。他显然意味着一个iOS应用程序,充当与用PHP编写的后端服务器交谈的客户端。 – 2012-02-05 11:29:42

+0

亲爱的Yahia,谢谢您的建议,请您澄清一下您的意见 – Saeed 2012-02-05 12:04:59

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

通常情况下,服务器在登录后在响应标头中设置一个cookie,并且该cookie包含会话标识,以便在随后的请求中,服务器知道客户端正在使用该会话,因为它匹配cookie。

Cookie在iOS上自动工作,所以你不应该做任何事情。 NSURLRequests有一个属性HTTPShouldHandleCookies,默认为YES,所以一切都应该默认工作。

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

+0

对于完全正确的答案+1。另外,会话不会*使用cookie保存 - 也可能是get参数,具体取决于服务器/ PHP设置。 – Till 2012-02-05 11:34:28

+0

是的,的确如此。我决定从答案中省略,以避免复杂的事情,但这是一个有效的观点。 – 2012-02-05 11:41:39

+0

+1这太棒了,这正是我需要阅读的,欢呼! – 2013-03-02 06:43:57