Php 使用cookie登录iOS web服务
我有一个网站的登录系统,我正在启动一个PHP会话服务器端,并在PHP中创建一个cookie,当我稍后回来时用于恢复PHP会话 我试图将我的代码重用为iOS应用程序的后端,但我很难理解它是如何工作的 我已经设置了以下cookie管理器,据我所知,它应该随我的请求发送cookiePhp 使用cookie登录iOS web服务,php,ios,cocoa,cookies,Php,Ios,Cocoa,Cookies,我有一个网站的登录系统,我正在启动一个PHP会话服务器端,并在PHP中创建一个cookie,当我稍后回来时用于恢复PHP会话 我试图将我的代码重用为iOS应用程序的后端,但我很难理解它是如何工作的 我已经设置了以下cookie管理器,据我所知,它应该随我的请求发送cookie NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; [cookieStorage setCookieAcc
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
我不需要从iPhone设置任何cookie,我只需要确保我对php文件的请求允许这些脚本访问cookie
我遗漏了什么吗?以前也有人问过类似的问题: 实际上,您需要将cookie数据保存到某个地方。它可以是一个使用如下内容的文件:
[NSKeyedArchiver archiveRootObject:cookies toFile:dataFilePath];
在这种情况下,您将返回cookie数据,其中包含以下内容:
NSFileManager *filemgr = [NSFileManager defaultManager];
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithFile:dataFilePath];
for (cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
您的真实情况将决定处理此问题的最佳方式,但希望以上内容能让您朝正确的方向思考。您遇到的问题是什么?根据您的使用情况,您可能还希望将cookie保存在某个位置,并在应用程序启动时重新加载它们。我认为您完全正确,如果我重新启动应用程序,我将在返回的cookie列表中获得不同的PHPSESSID。我只需要记住cookie中的用户id和散列字符串,并确保在我发出请求时可以从PHP访问它们。当我重新启动应用程序时,我得到了一个新的PHPSESSID——这表明重新启动实际上并没有保留我的cookie。你能提供一些我可以使用的参考资料或样本吗?你好,谢谢你回复David,我确实看到了另一篇文章,实际上这并不是我想要实现的。我不需要知道关于cookies的任何信息,我所需要做的就是确保我的PHP后端web服务可以将一些cookies粘贴到我的身上,并确保这些cookies在我下次从web服务请求某些内容时保持不变。这是为了确保我可以在服务器上使用自定义注册/登录脚本登录,并在cookies的帮助下保持登录。因此,保存cookie没有任何价值。实际上我需要确定饼干的有效期是set@Daniel因此,如果我理解正确的话,你就不必担心在关闭和重新启动应用程序时会保留cookies。你要处理的是让饼干发挥作用。对吗?几乎,我仍然需要应用程序来维护web服务在我身上保存了一个cookie的事实,为此,我需要确保cookie在将来有一个正确的过期日期,否则它只是一个会话cookie,而应用程序将在后台结束会话。好的,出于某种原因,我认为您已经尝试了
NSHTTPCookieStorage
,需要一个替代方案。听起来你真正关心的是会话cookie的使用,而不是持久cookie,你已经解决了这个问题。这就是cookie崩溃的方式。。。谢谢你的参与。为了消除任何不确定的结果,我从添加accept策略开始,我想知道这是否是我所需要的全部,从应用程序的角度来看,是的,但我在这里学到的是应用程序进入后台结束了会话,所有会话都只包含cookies。这值得一张便条