我需要使用带有authintication“login”mechanisim的iOS客户端创建一个基于服务器的(php)应用程序,但我不知道iOS中的会话。我的应用程序需要登录我的网站(基于PHP的网站)来获取数据。我不知道一个是iPhone客户端的会话是否在服务器中?
详细说明:
在从iPhone客户端向我的Web应用程序发送登录请求后,我想这里会在我的webapp中创建会话(对吗?),我的下一个请求呢?我可以访问为第一个请求创建的相同会话。换句话说:我可以在网络会话中(在服务器中)共享数据,以便在登录后由iOS客户端发送的每个请求中访问吗?
答案 0 :(得分:18)
会话是服务器端的概念 - 客户端没有会话。
通常情况下,服务器在您登录后在响应标头中设置cookie,并且该cookie包含会话ID,以便在后续请求中,服务器知道客户端正在使用该会话,因为它匹配了cookie中。
Cookie会自动在iOS上运行,因此您根本不需要做任何事情。 NSURLRequests有一个属性HTTPShouldHandleCookies,默认为YES,所以一切都应该默认工作。
如果它不起作用(或者您只是想看看发生了什么),您可以使用NSHTTPCookieStorage API访问iOS中的cookie。看一下[NSHTTPCookieStorage sharedHTTPCookieStorage],它的工作方式有点像NSDictionary。这是您登录后应设置会话cookie的地方。