ios - 在 iOS 中将应用程序中的 cookie 设置为 Safari

标签 ios objective-c cookies safari

在我的应用程序中,我需要实现下一个功能:当用户登录应用程序时,它(应用程序)需要将某些网站的 cookie(或任何其他数据)保存到移动 Safari。目标是当用户下次在 Safari 中打开该网站时不再登录。

Documentation说它不能在 iOS 上使用 cookie 来完成。有人知道其他解决方案吗?实现所需的功能是使其“静默”地呈现给用户,而无需打开 Safari。

更新

是否可以从移动 Safari 访问应用程序数据并获得一些回调?例如,当用户浏览网站时,网站会向应用程序发送一些回调,并获取一些用户数据的响应。

最佳答案

老问题,但是您可以从您的应用程序中打开 Safari 到一个特殊的一次性 URL,该 URL 将用户带到您托管的页面,传递您从同一服务器上的 API 检索的 token ,然后使用页面验证 token 和设置曲奇饼?这样授权是在服务器上处理的,服务器可以在响应中设置 cookie。

您可以在您的应用程序中执行类似的操作

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://myhost.com/myhandler?token=PX2G16BWFKZBQWUKGF3BGRY2Z6BEJ7Z3PMO2GZ6S3R00JVWBVEO6VWBEXNK14IBJ5GKAY5EKBLAHNSAJ8"]];

然后 myhost.com/myhandler 的页面将读取并验证 token ,并在响应上设置 cookie,然后使 token 无效。您还可以添加 token 的使用时间限制。

关于ios - 在 iOS 中将应用程序中的 cookie 设置为 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33688712/

相关文章:

ios - 基础和 cocoa 框架之间的关系

objective-c - 包含可访问方法的 iOS 类

iPhone 分配和释放

iphone - UIBackgroundModes位置和显着位置变化随区域监控

jquery - 使用 cookie 保存切换分区的状态

jquery - 降临日历 - 使用 cookies 阻止用户两次打开 "calendar door"

ios - 解析服务器“找不到对象”以进行删除

ios - 将对象的创建限制为 swift 4 中的工厂

ios - 什么 iOS 版本支持 NSTimer 有效属性?

asp.net - 与asp.net core 2.0共享asp.net 4表单例份验证cookie