2015-11-13 34 views
2

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

Documentation说,它不能使用cookie的iOS来完成。有人知道任何其他解决方案吗?实现所需的功能是在不打开Safari的情况下对用户进行“静默”处理。

UPDATE

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

+2

它不能在IOS/mobilesafari来完成,或任何其他操作系统和/或浏览器的一个很好的理由:如果任何应用程序可以随意乱用浏览器的cookies,这将是一个巨大的巨大的安全漏洞。 这应该在浏览器*中完成,*在有问题的网站上* –

回答

0

你不能访问Safari的Cookie。

Safari浏览器的cookie不是从其他应用访问。每个应用都会获得自己的WebKit缓存和Cookie存储,因此,虽然Cookie会在同一应用中持续存在 ,但它们不能在应用之间访问。

0

老问题,但是您能否将Safari从您的应用打开一个特殊的一次性URL,将用户带到您托管的页面,将相同服务器上从API检索到的令牌传递给页面,然后验证令牌和设置cookie?这种方式授权在服务器上处理,服务器可以在响应中设置cookie。

你可以在myhost.com/myhandler做这样的事情在你的应用程序

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

然后网页将读取和响应验证令牌,并设置的cookie,然后验证令牌。您还可以添加令牌可以使用多长时间的时间限制。

相关问题